new_quosure()
wraps any R object (including expressions,
formulas, or other quosures) into a quosure.
as_quosure()
is similar but it does not rewrap formulas and
quosures.
new_quosure(expr, env = caller_env())as_quosure(x, env = NULL)
is_quosure(x)
An expression to wrap in a quosure.
The environment in which the expression should be evaluated. Only used for symbols and calls. This should normally be the environment in which the expression was created.
An object to test.
enquo()
and quo()
for creating a quosure by argument defusal.
What are quosures and when are they needed?
# `new_quosure()` creates a quosure from its components. These are
# equivalent:
new_quosure(quote(foo), current_env())
quo(foo)
# `new_quosure()` always rewraps its input into a new quosure, even
# if the input is itself a quosure:
new_quosure(quo(foo))
# This is unlike `as_quosure()` which preserves its input if it's
# already a quosure:
as_quosure(quo(foo))
# `as_quosure()` uses the supplied environment with naked expressions:
env <- env(var = "thing")
as_quosure(quote(var), env)
# If the expression already carries an environment, this
# environment is preserved. This is the case for formulas and
# quosures:
as_quosure(~foo, env)
as_quosure(~foo)
# An environment must be supplied when the input is a naked
# expression:
try(
as_quosure(quote(var))
)
Run the code above in your browser using DataLab