lang_modify {rlang} | R Documentation |
Modify the arguments of a call
lang_modify(.lang, ..., .standardise = FALSE)
.lang |
Can be a call (language object), 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 |
A quosure if .lang
is a quosure, a call otherwise.
lang
call <- quote(mean(x, na.rm = TRUE)) # Modify an existing argument lang_modify(call, na.rm = FALSE) lang_modify(call, x = quote(y)) # Remove an argument lang_modify(call, na.rm = NULL) # Add a new argument lang_modify(call, trim = 0.1) # Add an explicit missing argument lang_modify(call, na.rm = quote(expr = )) # Supply a list of new arguments with splice() newargs <- list(na.rm = NULL, trim = 0.1) lang_modify(call, splice(newargs)) # Supply a call frame to extract the frame expression: f <- function(bool = TRUE) { lang_modify(call_frame(), splice(list(bool = FALSE))) } f() # You can also modify quosures inplace: f <- ~matrix(bar) lang_modify(f, quote(foo))