我想调用一个使用 ...
(省略号)参数以支持不确定数量的参数的 R 函数:
f <- function(x, ...) {
dot.args <- list(...)
paste(names(dot.args), dot.args, sep = "=", collapse = ", ")
}
我可以调用这个函数并传递在设计时预定义的实际参数,例如:
> f(1, a = 1, b = 2)
[1] "a=1, b=2"
我应如何传递在运行时才知道的实际参数(例如,来自用户输入)给
...
?# let's assume the user input was "a = 1" and "b = 2"
# ------
# If the user input was converted into a vector:
> f(1, c(a = 1, b = 2))
[1] "=c(1, 2)" # wrong result!
# If the user input was converted into a list:
> f(1, list(a = 1, b = 2))
[1] "=list(a = 1, b = 2)" # wrong result!
动态生成的
f
调用的期望输出应为:[1] "a=1, b=2"
我在如何使用...
的现有问题中找到了一些内容,但它们没有回答我的问题:
dot.args <- unlist(list(...))
或者dot.args <- c(...)
看起来可以实现你想要的功能。 - user2957945dot.args <- unlist(list(...))
调用f()
? - R Yodado.call(f, list(a = 1, b = 2))
- 但可能需要检查输入是否为列表或向量。 - user2957945