【发布时间】:2020-02-26 15:10:57
【问题描述】:
当向 group_by 提供变量时,对于 group_by 的最佳方式的共识是什么?考虑以下简单函数:
library(dplyr)
myFunction <- function(df,
col_name) {
out <-
group_by(col_name) %>%
summarize(mean = mean(mpg))
return(out)
}
myFunction(mtcars, col_name = c('cyl', 'am'))
对该函数的调用返回并且错误指出该列不存在。我明白为什么,但不确定解决这个问题的最佳方法。如果只有一个分组变量,我可以这样做:
group_by(!!as.name(col_name))
但是,如果 col_name 是一个向量 > 1,这将不起作用
有什么想法吗?
【问题讨论】:
-
您可以在
...参数中使用可变数量的裸列名称,然后使用group_by(!!!quos(...))。您也许还可以使用较新的{{ }}tidyeval 表示法来表示...之类的列表,但我不确定