Checks if an argument is a valid list of symbols (e.g., created by exprs()
)
Arguments
- arg
A function argument to be checked
- expect_names
If the argument is set to
TRUE
, it is checked if all variables are named, e.g.,exprs(APERSDT = APxxSDT, APEREDT = APxxEDT)
.- optional
Is the checked argument optional? If set to
FALSE
andarg
isNULL
then an error is thrown
Value
The function throws an error if arg
is not a list of symbols (e.g., created
by exprs()
and returns the input invisibly otherwise.
See also
Checks for valid input and returns warning or errors messages:
assert_atomic_vector()
,
assert_character_scalar()
,
assert_character_vector()
,
assert_data_frame()
,
assert_date_vector()
,
assert_expr_list()
,
assert_expr()
,
assert_filter_cond()
,
assert_function_param()
,
assert_function()
,
assert_has_variables()
,
assert_integer_scalar()
,
assert_list_element()
,
assert_list_of()
,
assert_logical_scalar()
,
assert_named_exprs()
,
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_varval_list()
Examples
library(dplyr, warn.conflicts = FALSE)
library(rlang)
example_fun <- function(by_vars) {
assert_vars(by_vars)
}
example_fun(exprs(USUBJID, PARAMCD))
try(example_fun(quos(USUBJID, PARAMCD)))
#> Error in assert_list_of(arg, "symbol", named = expect_names, optional = optional) :
#> Each element of `arg` must be an object of class/type 'symbol' but the following are not:
#> ✖ Element 1 is an object of class 'quosure'
#> ✖ Element 2 is an object of class 'quosure'
try(example_fun(c("USUBJID", "PARAMCD", "VISIT")))
#> Error in assert_s3_class(arg, "list") :
#> `arg` must be an object of class 'list' but is a character vector
try(example_fun(exprs(USUBJID, toupper(PARAMCD), desc(AVAL))))
#> Error in assert_list_of(arg, "symbol", named = expect_names, optional = optional) :
#> Each element of `arg` must be an object of class/type 'symbol' but the following are not:
#> ✖ Element 2 is an object of class 'call'
#> ✖ Element 3 is an object of class 'call'
example_fun_name <- function(by_vars) {
assert_vars(by_vars, expect_names = TRUE)
}
example_fun_name(exprs(APERSDT = APxxSDT, APEREDT = APxxEDT))
try(example_fun_name(exprs(APERSDT = APxxSDT, APxxEDT)))
#> Error in assert_list_of(arg, "symbol", named = expect_names, optional = optional) :
#> All elements of arg must be named.
#> The following elements are not named: 2