假设您具有以下功能:
fxn <- function(x, y, z) {
x + y + z
}
调用此函数时是否可以一次引用多个列?以下代码提供了错误Error in fxn(df[cols]) : argument "y" is missing, with no default
df <- data.frame(a = c(1,2), b = c(3,4), c = c(5,6))
cols <- c("a", "b", "c")
df$d <- fxn(df[cols])
答案 0 :(得分:0)
如果将输入更改为列表而不是向量,则可以执行此操作。另外,由于您不能对字符求和,因此我将示例更改为使用整数。
本质上,do.call
允许您将函数args作为列表提供
fxn <- function(x, y, z) {
sum(x, y, z)
}
cols <- list(1, 2, 2)
do.call(fxn, cols)