assert_filter_cond {admiraldev} | R Documentation |
Is an Argument a Filter Condition?
Description
Is an Argument a Filter Condition?
Usage
assert_filter_cond(
arg,
optional = FALSE,
arg_name = gsub("^enexpr\\((.*)\\)$", "\\1", rlang::caller_arg(arg)),
message = NULL,
class = "assert_filter_cond",
call = parent.frame()
)
Arguments
arg |
Quosure - filtering condition. |
optional |
Logical - is the argument optional? Defaults to |
arg_name |
By default the expression specified for |
message |
string passed to |
class |
Subclass of the condition. |
call |
The execution environment of a currently running
function, e.g. You only need to supply Can also be For more information about error calls, see Including function calls in error messages. |
Details
Check if arg
is a suitable filtering condition to be used in
functions like subset
or dplyr::filter
.
Value
Performs necessary checks and returns arg
if all pass.
Otherwise throws an informative error.
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()
,
assert_expr_list()
,
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
library(dplyr, warn.conflicts = FALSE)
library(rlang)
dm <- dplyr::tribble(
~DOMAIN, ~STUDYID, ~USUBJID, ~AGE,
"DM", "STUDY X", "01-701-1015", 64,
"DM", "STUDY X", "01-701-1016", 65,
)
# typical usage in a function as an argument check
example_fun <- function(dat, x) {
x <- assert_filter_cond(enexpr(x), arg_name = "x")
filter(dat, !!x)
}
example_fun(dm, AGE == 64)
try(assert_filter_cond(mtcars))