如何 group_by 多个灵活的标准
How to group_by multiple, flexible criteria
我正在尝试在函数内部使用 group_by,分组标准是函数的输入。现在我把它设置成这样:
x <- function(data, grouping_vector) {
data %>%
group_by_(grouping_vector) %>%
summarise(n = n()) -> output
output
}
...但是当我尝试在多个分组项目的列表上使用此函数时:
example <- x(data = my_data, grouping_vector = c(col1, col2))
它失败了。有没有办法将多个 group_by 主题输入该函数?我知道您通常可以简单地用逗号分隔多个列,但我不知道如何在函数中做到这一点。
谢谢
确保将 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"))
产生:
## 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
## .. ... ... ..
我正在尝试在函数内部使用 group_by,分组标准是函数的输入。现在我把它设置成这样:
x <- function(data, grouping_vector) {
data %>%
group_by_(grouping_vector) %>%
summarise(n = n()) -> output
output
}
...但是当我尝试在多个分组项目的列表上使用此函数时:
example <- x(data = my_data, grouping_vector = c(col1, col2))
它失败了。有没有办法将多个 group_by 主题输入该函数?我知道您通常可以简单地用逗号分隔多个列,但我不知道如何在函数中做到这一点。
谢谢
确保将 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"))
产生:
## 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
## .. ... ... ..