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