如何在 dplyr 中使用 ungroup() (带有示例)
在使用 group_by ()函数汇总每组一个变量之后,您可以使用 dplyr 中的 ungroup ()函数对行进行取消分组。
下面的例子展示了如何在实际中使用这个功能。
示例:如何在 dplyr 中使用 ungroup()
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
dots=c(14, 18, 22, 26, 36, 34),
assists=c(5, 4, 4, 8, 7, 3))
#view data frame
df
team points assists
1 to 14 5
2 to 18 4
3 to 22 4
4 B 26 8
5 B 36 7
6 B 34 3
现在假设我们使用以下代码来计算按团队分组的平均分值:
library (dplyr)
#calculate mean of points, grouped by team
df_new <- df %>%
group_by(team) %>%
summarize(mean_points = mean(points)) %>%
A group()
#view results
df_new
# A tibble: 2 x 2
team mean_points
1 to 18
2 B 32
使用此语法,我们可以计算按球队分组的平均值,但我们丢失了助攻列。
为了保留helpers列,我们可以使用mutate()而不是summary() ,并且最后仍然使用ungroup() :
library (dplyr)
#calculate mean of points, grouped by team
df_new <- df %>%
group_by(team) %>%
mutate(mean_points = mean(points)) %>%
A group()
#view results
df_new
# A tibble: 6 x 4
team points assists mean_points
1 A 14 5 18
2 A 18 4 18
3 A 22 4 18
4 B 26 8 32
5 B 36 7 32
6 B 34 3 32
这次我们能够保留助攻列,并使用mutate()函数,我们简单地添加了一个名为Mean_points的新列,它显示每个团队的平均得分值。
由于我们还使用了ungroup()函数,因此我们可以对这个新数据框进行计算,而不必担心计算受到分组变量的影响。
如果我们不使用ungroup()函数,数据框中的行仍然会分组在一起,这可能会在我们稍后执行其他计算时产生意想不到的后果。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如何使用dplyr过滤唯一值
如何使用 dplyr 按多个条件进行过滤
如何计算R中列中出现的次数