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())