inspect_data_dichotomous checks if an object contains data
that is eligible to have been generated by a series of Bernoulli trials. This
can be useful to validate inputs in user-defined functions.
inspect_data_dichotomous(data, success, allow_nas = TRUE, warning_nas = FALSE)| data, success | Arbitrary objects. |
|---|---|
| allow_nas | Logical value. If |
| warning_nas | Logical value. If |
inspect_data_dichotomous does not return any output. There are
three possible outcomes:
The call is silent if:
data is eligible to have been generated by a series of Bernoulli trials
and there are no NA or NaN values in data.
data is eligible to have been generated by a series of Bernoulli
trials, there are some NA or NaN values in data, allow_nas is set
to TRUE and warning_nas is set to FALSE.
An informative warning message is thrown if:
data is eligible to have been generated by a series of Bernoulli trials
and success is not observed in data.
data is eligible to have been generated by a series of Bernoulli
trials, there are NA or NaN values in data and both allow_nas and
warning_nas are set to TRUE.
An informative error message is thrown and the execution is stopped if:
data is not eligible to have been generated by a series of Bernoulli
trials.
data is eligible to have been generated by a series of Bernoulli
trials, there are some NA or NaN values in data and allow_nas is
set to FALSE.
inspect_data_dichotomous conducts a series of tests to check if
data is eligible to have been generated by a series of Bernoulli trials.
Namely, inspect_data_dichotomous checks if:
data and success are NULL or empty.
data and success are atomic and have an eligible data type (logical,
integer, double, character).
data and success have NA or NaN values.
The number of unique values in data and success are adequate.
success has length 1.
success is observed in data.
inspect_par_bernoulli to validate
Bernoulli/Binomial proportions.
inspect_data_categorical and
inspect_data_cat_as_dichotom to validate categorical
data.
inspect_par_multinomial to validate vectors of
Multinomial proportions.
# Calls that pass silently:
x1 <- c(1, 0, 0, 1, 0)
x2 <- c(FALSE, FALSE, TRUE)
x3 <- c("yes", "no", "yes")
x4 <- factor(c("yes", "no", "yes"))
x5 <- c(1, 0, 0, 1, 0, NA)
inspect_data_dichotomous(x1, success = 1)
inspect_data_dichotomous(x2, success = TRUE)
inspect_data_dichotomous(x3, success = "yes")
inspect_data_dichotomous(x4, success = "yes")
inspect_data_dichotomous(x5, success = 1)
# Calls that throw an informative warning message:
y1 <- c(1, 1, NA, 0, 0)
y2 <- c(0, 0)
success <- 1
try(inspect_data_dichotomous(y1, success = 1, warning_nas = TRUE))
#> Warning: There are NA or NaN values in y1.
try(inspect_data_dichotomous(y2, success = success))
#> Warning: success not observed in y2.
# Calls that throw an informative error message:
try(inspect_data_dichotomous(NULL, 1))
#> Error in inspect_data_dichotomous(NULL, 1) :
#> Invalid argument: NULL is NULL.
try(inspect_data_dichotomous(c(1, 0), NULL))
#> Error in inspect_data_dichotomous(c(1, 0), NULL) :
#> Invalid argument: NULL is NULL.
try(inspect_data_dichotomous(list(1, 0), 1))
#> Error in inspect_data_dichotomous(list(1, 0), 1) :
#> Invalid argument: list(1, 0) must be atomic.
try(inspect_data_dichotomous(c(1, 0), list(1)))
#> Error in inspect_data_dichotomous(c(1, 0), list(1)) :
#> Invalid argument: list(1) must be atomic and have length 1.
try(inspect_data_dichotomous(numeric(0), 0))
#> Error in inspect_data_dichotomous(numeric(0), 0) :
#> Invalid argument: numeric(0) is empty.
try(inspect_data_dichotomous(1, numeric(0)))
#> Error in inspect_data_dichotomous(1, numeric(0)) :
#> Invalid argument: numeric(0) must be atomic and have length 1.
try(inspect_data_dichotomous(NaN, 1))
#> Error in inspect_data_dichotomous(NaN, 1) :
#> Invalid argument: all elements of NaN are NA or NaN.
try(inspect_data_dichotomous(NA, 1))
#> Error in inspect_data_dichotomous(NA, 1) :
#> Invalid argument: all elements of NA are NA or NaN.
try(inspect_data_dichotomous(c(1, 0), NA))
#> Error in inspect_data_dichotomous(c(1, 0), NA) :
#> Invalid argument: NA is NA or NaN
try(inspect_data_dichotomous(c(1, 0), NaN))
#> Error in inspect_data_dichotomous(c(1, 0), NaN) :
#> Invalid argument: NaN is NA or NaN
try(inspect_data_dichotomous(c(1, 0), 2))
#> Error in inspect_data_dichotomous(c(1, 0), 2) :
#> Invalid argument: there are more than two levels'.