Checks if an argument is a symbol
Arguments
- arg
A function argument to be checked. Must be a
symbol
. See examples.- 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 symbol 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_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_unit()
,
assert_vars()
,
assert_varval_list()
Examples
library(pharmaversesdtm)
library(dplyr, warn.conflicts = FALSE)
library(rlang)
data(dm)
example_fun <- function(dat, var) {
var <- assert_symbol(enexpr(var))
select(dat, !!var)
}
example_fun(dm, USUBJID)
#> # A tibble: 306 × 1
#> USUBJID
#> <chr>
#> 1 01-701-1015
#> 2 01-701-1023
#> 3 01-701-1028
#> 4 01-701-1033
#> 5 01-701-1034
#> 6 01-701-1047
#> 7 01-701-1057
#> 8 01-701-1097
#> 9 01-701-1111
#> 10 01-701-1115
#> # ℹ 296 more rows
try(example_fun(dm))
#> Error in assert_symbol(enexpr(var)) :
#> Argument `var` missing, with no default
try(example_fun(dm, "USUBJID"))
#> Error in assert_symbol(enexpr(var)) :
#> `var` must be a symbol but is `"USUBJID"`
try(example_fun(dm, toupper(PARAMCD)))
#> Error in assert_symbol(enexpr(var)) :
#> `var` must be a symbol but is an object of class 'call'