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.