当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 表示法来表示类似于...
的列表,但我不确定是否可行。 - camille