📜  在 R 中使用 Dplyr 按一个或多个变量分组(1)

📅  最后修改于: 2023-12-03 15:37:27.854000             🧑  作者: Mango

在 R 中使用 Dplyr 按一个或多个变量分组

Dplyr 是一个 R 语言包,用于数据操作。它提供了一组用于数据转换和汇总的函数,这些函数能够有效地处理大型数据集。在本文中,我们将介绍如何使用 Dplyr 来按一个或多个变量分组。

加载 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 数据集按照 classyear 列进行分组,并在每个分组内计算 cty 列的平均值。

总结

在本文中,我们介绍了使用 Dplyr 在 R 中按一个或多个变量分组的方法。通过 group_by()summarise() 函数,你可以轻松地进行分组、计算和汇总操作,从而更好地理解你的数据。