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