使用do.call()使用变量名称向量调用R函数

时间:2018-02-17 09:37:04

标签: r

我在R中编写了一个名为by_group()的函数。 by_group()函数期望其第一个参数为data frame,后跟任意数量的字符参数,这些参数引用data frame中的现有变量。

我想调用by_group()(在另一个函数中),而不事先知道用户将传递多少变量。这是有效的,如果我明确地这样做,引用输入data frame和变量,如:

output <- by_group(df, "var1", "var2",...)

如果我使用do.call()函数,我可以类似地使函数工作:

output <- do.call(by_group, as.list(c(df, "var1", "var2"))

现在假设我有一个我希望通过by_group()传递的变量名的向量:

var_names <- c("var1", "var2")

我尝试将var_names向量传递给do.call()

output <- do.call(by_group, as.list(c("df", var_names))

我收到错误。如何正确调用by_group功能?

0 个答案:

没有答案