如何group_by多个,灵活的标准

Dr.*_*gan 3 r dplyr

我正在尝试在函数内部使用group_by,分组条件是函数的输入.现在我把它设置为如此:

x <- function(data, grouping_vector) {
  data %>%
    group_by_(grouping_vector) %>%
    summarise(n = n()) -> output
  output
}
Run Code Online (Sandbox Code Playgroud)

...但是当我尝试在多个分组项目列表中使用此功能时,如下所示:

example <- x(data = my_data, grouping_vector = c(col1, col2))
Run Code Online (Sandbox Code Playgroud)

它失败.有没有办法将多个group_by主题提供给该功能?我知道你可以简单地用逗号分隔多个列,但我不知道如何在函数中这样做.

谢谢

aar*_*len 5

确保grouping_vector传递给.dots参数:

x <- function(data, grouping_vector) {
  data %>%
    group_by_(.dots = grouping_vector) %>%
    summarise(n = n())
}


# example
data(ChickWeight)
x(ChickWeight, c("Chick", "Diet"))
Run Code Online (Sandbox Code Playgroud)

生产:

##    Chick Diet  n
## 1     18    1  2
## 2     16    1  7
## 3     15    1  8
## 4     13    1 12
## 5      9    1 12
## 6     20    1 12
## 7     10    1 12
## 8      8    1 11
## 9     17    1 12
## 10    19    1 12
## ..   ...  ... ..
Run Code Online (Sandbox Code Playgroud)