| quosure {rlang} | R Documentation |
You can access the quosure components (its expression and its environment) with:
get_expr() and get_env(). These getters also support other
kinds of objects such as formulas
quo_get_expr() and quo_get_env(). These getters only work
with quosures and throw an error with other types of input.
Test if an object is a quosure with is_quosure(). If you know an
object is a quosure, use the quo_ prefixed predicates to check
its contents, quo_is_missing(), quo_is_symbol(), etc.
is_quosure(x) quo_is_missing(quo) quo_is_symbol(quo, name = NULL) quo_is_call(quo, name = NULL, n = NULL, ns = NULL) quo_is_symbolic(quo) quo_is_null(quo) quo_get_expr(quo) quo_get_env(quo) quo_set_expr(quo, expr) quo_set_env(quo, env) is_quosures(x)
x |
An object to test. |
quo |
A quosure to test. |
name |
The name of the symbol or function call. If |
n |
An optional number of arguments that the call should match. |
ns |
The namespace of the call. If |
expr |
A new expression for the quosure. |
env |
A new environment for the quosure. |
When missing arguments are captured as quosures, either through
enquo() or quos(), they are returned as an empty quosure. These
quosures contain the missing argument and typically
have the empty environment as enclosure.
is_quosure() is stable.
quo_get_expr() and quo_get_env() are stable.
is_quosureish() is deprecated as of rlang 0.2.0. This function
assumed that quosures are formulas which is currently true but
might not be in the future.
quo() for creating quosures by quotation; as_quosure()
and new_quosure() for constructing quosures manually.
quo <- quo(my_quosure) quo # Access and set the components of a quosure: quo_get_expr(quo) quo_get_env(quo) quo <- quo_set_expr(quo, quote(baz)) quo <- quo_set_env(quo, empty_env()) quo # Test wether an object is a quosure: is_quosure(quo) # If it is a quosure, you can use the specialised type predicates # to check what is inside it: quo_is_symbol(quo) quo_is_call(quo) quo_is_null(quo) # quo_is_missing() checks for a special kind of quosure, the one # that contains the missing argument: quo() quo_is_missing(quo()) fn <- function(arg) enquo(arg) fn() quo_is_missing(fn())