📅  最后修改于: 2023-12-03 15:37:27.854000             🧑  作者: Mango
Dplyr 是一个 R 语言包,用于数据操作。它提供了一组用于数据转换和汇总的函数,这些函数能够有效地处理大型数据集。在本文中,我们将介绍如何使用 Dplyr 来按一个或多个变量分组。
首先,你需要安装和加载 Dplyr。
install.packages("dplyr")
library(dplyr)
接下来,我们将使用 group_by()
函数来按一个或多个变量分组。
# 以 mpg 数据集为例
head(mpg)
输出:
# A tibble: 6 x 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l~ f 18 29 p compact
2 audi a4 1.8 1999 4 manual~ f 21 29 p compact
3 audi a4 2 2008 4 manual~ f 20 31 p compact
4 audi a4 2 2008 4 auto(a~ f 21 30 p compact
5 audi a4 2.8 1999 6 auto(l~ f 16 26 p compact
6 audi a4 2.8 1999 6 manual~ f 18 26 p compact
现在,假设我们想按 class
这一列分组,并计算 cty
列的平均值。
mpg %>%
group_by(class) %>%
summarise(avg_cty = mean(cty))
输出:
# A tibble: 7 x 2
class avg_cty
<chr> <dbl>
1 2seater 15.4
2 compact 20.1
3 midsize 18.8
4 minivan 15
5 pickup 13.0
6 subcompact 20.4
7 suv 13.5
以上代码会把 mpg
数据集按照 class
列分组,并在每个分组内计算 cty
列的平均值。结果将会返回一个新的数据集,其中包含每个 class
值对应的平均 cty
值。
我们还可以按多个列进行分组。
mpg %>%
group_by(class, year) %>%
summarise(avg_cty = mean(cty))
输出:
# A tibble: 37 x 3
# Groups: class [7]
class year avg_cty
<chr> <int> <dbl>
1 2seater 1999 16.0
2 2seater 2008 14
3 compact 1999 21.8
4 compact 2008 19.1
5 midsize 1999 18
6 midsize 2008 19.3
7 minivan 1999 14.5
8 minivan 2008 15.5
9 pickup 1999 13
10 pickup 2008 13
# ... with 27 more rows
以上代码会把 mpg
数据集按照 class
和 year
列进行分组,并在每个分组内计算 cty
列的平均值。
在本文中,我们介绍了使用 Dplyr 在 R 中按一个或多个变量分组的方法。通过 group_by()
和 summarise()
函数,你可以轻松地进行分组、计算和汇总操作,从而更好地理解你的数据。