我在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
功能?