call_modify {rlang} | R Documentation |
Modify the arguments of a call
call_modify(.call, ..., .standardise = FALSE, .env = caller_env())
.call |
Can be a call, a formula quoting a call in the right-hand side, or a frame object from which to extract the call expression. |
... |
Named or unnamed expressions (constants, names or calls)
used to modify the call. Use |
.standardise |
If |
.env |
The environment where to find the |
A quosure if .call
is a quosure, a call otherwise.
In rlang 0.2.0, lang_modify()
was soft-deprecated and renamed to
call_modify()
. See lifecycle section in call2()
for more about
this change.
lang
call <- quote(mean(x, na.rm = TRUE)) # Modify an existing argument call_modify(call, na.rm = FALSE) call_modify(call, x = quote(y)) # Remove an argument call_modify(call, na.rm = NULL) # Add a new argument call_modify(call, trim = 0.1) # Add an explicit missing argument call_modify(call, na.rm = quote(expr = )) # Supply a list of new arguments with `!!!` newargs <- list(na.rm = NULL, trim = 0.1) call_modify(call, !!! newargs) # Supply a call frame to extract the frame expression: f <- function(bool = TRUE) { call_modify(call_frame(), splice(list(bool = FALSE))) } f() # You can also modify quosures inplace: f <- quo(matrix(bar)) call_modify(f, quote(foo))