These helpers are useful to make your function work generically
with quosures and raw expressions. First call get_expr()
to
extract an expression. Once you're done processing the expression,
call set_expr()
on the original object to update the expression.
You can return the result of set_expr()
, either a formula or an
expression depending on the input type. Note that set_expr()
does
not change its input, it creates a new object.
set_expr(x, value)get_expr(x, default = x)
An expression, closure, or one-sided formula. In addition,
set_expr()
accept frames.
An updated expression.
A default expression to return when x
is not an
expression wrapper. Defaults to x
itself.
The updated original input for set_expr()
. A raw
expression for get_expr()
.
quo_get_expr()
and quo_set_expr()
for versions of
get_expr()
and set_expr()
that only work on quosures.
# NOT RUN {
f <- ~foo(bar)
e <- quote(foo(bar))
frame <- identity(identity(ctxt_frame()))
get_expr(f)
get_expr(e)
get_expr(frame)
set_expr(f, quote(baz))
set_expr(e, quote(baz))
# }
Run the code above in your browser using DataLab