Checks if an argument is a character vector
Usage
assert_character_vector(
arg,
values = NULL,
named = FALSE,
optional = FALSE,
arg_name = rlang::caller_arg(arg),
message = NULL,
class = "assert_character_vector",
call = parent.frame()
)
Arguments
- arg
A function argument to be checked
- values
A
character
vector of valid values forarg
- named
If set to
TRUE
, an error is issued if not all elements of the vector are named.- optional
Is the checked argument optional? If set to
FALSE
andarg
isNULL
then an error is thrown- arg_name
string indicating the label/symbol of the object being checked.
- message
string passed to
cli::cli_abort(message)
. WhenNULL
, default messaging is used (see examples for default messages)."{arg_name}"
can be used in messaging.- class
Subclass of the condition.
- call
The execution environment of a currently running function, e.g.
call = caller_env()
. The corresponding function call is retrieved and mentioned in error messages as the source of the error.You only need to supply
call
when throwing a condition from a helper function which wouldn't be relevant to mention in the message.Can also be
NULL
or a defused function call to respectively not display any call or hard-code a code to display.For more information about error calls, see Including function calls in error messages.
Value
The function throws an error if arg
is not a character vector or if
any element is not included in the list of valid values. Otherwise, the input
is returned invisibly.
See also
Checks for valid input and returns warning or errors messages:
assert_atomic_vector()
,
assert_character_scalar()
,
assert_data_frame()
,
assert_date_vector()
,
assert_expr()
,
assert_expr_list()
,
assert_filter_cond()
,
assert_function()
,
assert_integer_scalar()
,
assert_list_element()
,
assert_list_of()
,
assert_logical_scalar()
,
assert_named()
,
assert_numeric_vector()
,
assert_one_to_one()
,
assert_param_does_not_exist()
,
assert_s3_class()
,
assert_same_type()
,
assert_symbol()
,
assert_unit()
,
assert_vars()
,
assert_varval_list()
Examples
example_fun <- function(chr) {
assert_character_vector(chr)
}
example_fun(letters)
try(example_fun(1:10))
#> Error in example_fun(1:10) :
#> Argument `chr` must be <character>, but is an integer vector.
example_fun2 <- function(chr) {
assert_character_vector(chr, named = TRUE)
}
try(example_fun2(c(alpha = "a", "b", gamma = "c")))
#> Error in example_fun2(c(alpha = "a", "b", gamma = "c")) :
#> All elements of `chr` argument must be named.
#> ℹ The indices of the unnamed elements are 2