Я хотел бы указать пользовательский аргумент для функции, созданной с помощью rlang::new_function
.Для этого мне нужно передать аргумент args
-аргументу new_function
.
Я предполагаю, что named_arg
следует заключать в кавычки / без кавычек.Это то, что я пробовал до сих пор:
library(rlang)
function_factory <- function(named_arg) {
new_function(
exprs(named_arg =,... = ),
expr(print("hello world")),
caller_env()
)
}
fun1 <- function_factory(arg1)
fun1
#> function (named_arg, ...)
#> print("hello world")
Желаемый результат будет:
#> function (arg1, ...)
#> print("hello world")
Ниже приведен один из подходов, которые я пробовал, но не сработал:
function_factory <- function(named_arg) {
named_arg_quo <- enquo(named_arg)
new_function(
exprs(!!named_arg_quo =,... = ),
expr(print("hello world")),
caller_env()
)
}
#> Error: <text>:21:27: unexpected '='
#> 20: new_function(
#> 21: exprs(!!named_arg_quo =
#> ^