Skip to contents

Checks values and S3 class of an atomic object.

Usage

check_values(x, values, x_name = NULL)

Arguments

x

The object to check.

values

An atomic vector specifying the S3 class and possible values.

x_name

A string of the name of object x or NULL.

Value

An informative error if the test fails or an invisible copy of x.

Details

To check the class simply pass a vector of the desired class.

To check that x does not include missing values pass a single non-missing value (of the correct class).

To allow it to include missing values include a missing value.

To check that it only includes missing values only pass a missing value (of the correct class).

To check the range of the values in x pass two non-missing values (as well as the missing value if required).

To check that x only includes specific values pass three or more non-missing values.

In the case of a factor if values has two or more levels then the levels of x must be identical, including their order, to the levels of values. A factor with less than two levels only checks that x is a factor. Thus factor(1) allows any factor without missing values, factor(c(1, NA)) any factor with or without missing values and factor(NA) any factor with all missing values.

Examples

check_values(1, numeric(0))
check_values(1, 2)
try(check_values(1, 1L))
#> Error in check_values(1, 1L) : `1` must inherit from class 'integer'.
try(check_values(NA_real_, 1))
#> Error in check_values(NA_real_, 1) : 
#>   `NA_real_` must not have any missing values.