0

假设您有以下功能:

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

1 回答 1

0

如果您将输入更改为列表而不是向量,则可以执行此操作。此外,由于您无法对字符求和,因此我已将示例更改为使用整数。

本质上,do.call允许您将函数参数作为列表提供

fxn <- function(x, y, z) {
  sum(x, y, z)
}

cols <- list(1, 2, 2)

do.call(fxn, cols)
于 2019-07-11T16:37:06.277 回答