Check if an argument has valid type, and if not, generate an error message.
check_type(
x,
valid,
name = NULL,
general = NULL,
specific = NULL,
supplement = NULL,
...
)The argument to check, which can be any object.
A character vector which contains the valid types.
A single character which gives the argument's name.
The name is used in the error message. By default, the name of the
argument passed to argument x is captured automatically.
Optional. A single character which is used to give a general statement of the error incurred. By default, this is generated automatically.
Optional. A single character which gives a detailed
description of the error. glue::glue() syntax can be used, see
"Examples" section. By default, this is generated automatically.
Optional. A (named) character vector which gives some
additional information about the error. The names are used to create
bullets, see throw(). By default, this is left empty.
Optional. Additional arguments which can be retrieved with
tryCatch().
returns an invisible NULL if the argument is valid, or
generates an error message.
vignette("erify") for a gentle introduction to this package.
# argument to check
arg <- 10
# returns silently if the argument has valid type
check_type(arg, "double")
if (FALSE) {
check_type(arg, "character")
# specify argument's name
check_type(arg, "character", name = "x")
# specify argument `specific` with `glue::glue()` syntax
specific <- "`{name}`'s type is {feature}, which is wrong."
check_type(arg, "character", specific = specific)
# specify argument `supplement`
supplement <- c("You're wrong.", i = "Check your code.")
check_type(arg, "character", supplement = supplement)
# turn off `specific`
check_type(arg, "character", specific = character())
}
# add and retrieve additional argument
tryCatch(
{check_type(arg, "character", your_arg = "your data")},
error = function(e) e$your_arg
)
#> [1] "your data"