Checks if the argument is a function and if all expected arguments are provided by the function.
Arguments
- arg
A function
The function to be checked
- params
A character vector
A character vector of expected argument names for the aforementioned function in
arg
. If ellipsis,...
, is included in the function formals of the function inarg
, this argument,params
will be ignored, accepting all values of the character vector.- optional
Is the checked argument optional?
If set to
FALSE
andarg
isNULL
then an error is thrown.
Value
The function throws an error
if the argument is not a function or
if the function does not provide all arguments as specified for the
params
argument (assuming ellipsis is not in function formals)
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_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(fun) {
assert_function(fun, params = c("x"))
}
example_fun(mean)
try(example_fun(1))
#> Error in assert_function(fun, params = c("x")) :
#> `fun` must be a function but is `1`
try(example_fun(sum))
#> Error in assert_function(fun, params = c("x")) :
#> `x` is not an argument of the function specified for `fun`