Checks all non-missing values fall within range using
If inclusive
all(x[!is.na(x)] >= range[1] & x[!is.na(x)] <= range[2])
else
all(x[!is.na(x)] > range[1] & x[!is.na(x)] < range[2])
Arguments
- x
The object to check.
- range
A non-missing sorted vector of length 2 of the lower and upper permitted values.
- inclusive
A flag specifying whether the range is exclusive.
- x_name
A string of the name of object x or NULL.
Value
The chk_
function throws an informative error if the test fails or
returns the original object if successful so it can used in pipes.
The vld_
function returns a flag indicating whether the test was met.
Examples
# chk_range
chk_range(0)
try(chk_range(-0.1))
#> Error in eval(expr, envir, enclos) :
#> `-0.1` must be between 0 and 1, not -0.1.
# vld_range
vld_range(numeric(0))
#> [1] TRUE
vld_range(0)
#> [1] TRUE
vld_range(-0.1)
#> [1] FALSE
vld_range(c(0.1, 0.2, NA))
#> [1] TRUE
vld_range(c(0.1, 0.2, NA), range = c(0, 1))
#> [1] TRUE