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