Checks if the argument is a list of expressions where the expressions are
variable-value pairs. The value can be a symbol, a string, a numeric, an
expression, or NA.
assert_varval_list(
arg,
required_elements = NULL,
accept_expr = TRUE,
accept_var = FALSE,
optional = FALSE,
arg_name = rlang::caller_arg(arg),
message = NULL,
class = "assert_varval_list",
call = parent.frame()
)The function throws an error if arg is not a list of variable-value expressions.
Otherwise, the input it returned invisibly.
A function argument to be checked
none
A character vector of names that must be present in arg
NULL
Should expressions on the right hand side be accepted?
TRUE
Should unnamed variable names (e.g. exprs(USUBJID)) on the
right hand side be accepted?
FALSE
Is the checked argument optional? If set to FALSE and arg
is NULL then an error is thrown.
FALSE
string indicating the label/symbol of the object being checked.
rlang::caller_arg(arg)
string passed to cli::cli_abort(message).
When NULL, default messaging is used (see examples for default messages).
"{arg_name}" can be used in messaging.
NULL
Subclass of the condition.
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.
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(),
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()
library(dplyr, warn.conflicts = FALSE)
library(rlang)
example_fun <- function(vars) {
assert_varval_list(vars)
}
example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ))
try(example_fun(exprs("AE", DTSEQ = AESEQ)))
Run the code above in your browser using DataLab