📜  在 R 中使用 dplyr 汇总多列(1)

📅  最后修改于: 2023-12-03 14:51:07.126000             🧑  作者: Mango

在 R 中使用 dplyr 汇总多列

dplyr 是一个广泛使用的 R 库,用于对数据进行整理、处理和汇总。其中,dplyr 提供了多种函数用于对数据进行分组和汇总,本文将介绍如何使用 dplyr 汇总多列。

安装和加载 dplyr

首先,需要安装和加载 dplyr 库,以便可以使用其中的函数。可以使用如下代码进行安装和加载:

# 安装 dplyr
install.packages("dplyr")

# 加载 dplyr
library(dplyr)
数据框

本文使用 iris 数据集作为示例,为了展示如何在 dplyr 中汇总多列,我们需要创建一个数据框。可以使用如下代码进行创建:

# 创建数据框
iris_df <- as.data.frame(iris)

# 查看数据框
head(iris_df)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

数据框中包含 5 列数据,分别为 Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)和 Species(种类)。

汇总多列

dplyr 提供了多种函数用于对数据进行汇总,其中最常用的函数是 group_by()summarize()group_by() 函数用于对数据进行分组,summarize() 函数用于对数据进行汇总。

我们可以使用如下代码对 iris 数据集中的 Sepal.Length 和 Sepal.Width 进行汇总:

# 按 Species 分组,汇总 Sepal.Length 和 Sepal.Width
iris_summary <- iris_df %>%
  group_by(Species) %>%
  summarize(mean_Sepal_Length = mean(Sepal.Length), mean_Sepal_Width = mean(Sepal.Width))

# 查看汇总结果
iris_summary
# A tibble: 3 x 3
  Species    mean_Sepal_Length mean_Sepal_Width
  <fct>                  <dbl>            <dbl>
1 setosa                  5.01             3.43
2 versicolor              5.94             2.77
3 virginica               6.59             2.97

上述代码中,我们首先使用 group_by() 函数按 Species 列对数据进行分组,然后使用 summarize() 函数汇总 Sepal.Length 和 Sepal.Width 列,并使用 mean() 函数计算平均值。最后,使用 %>% 运算符将两个函数连接起来,得到最终的汇总结果。

在上述代码中,汇总的列数为 2,分别为 mean_Sepal_Length 和 mean_Sepal_Width。

我们也可以使用如下代码对 iris 数据集中的所有列进行汇总:

# 按 Species 分组,汇总所有列
iris_summary <- iris_df %>%
  group_by(Species) %>%
  summarize(across(everything(), mean))

# 查看汇总结果
iris_summary
# A tibble: 3 x 5
  Species    Sepal.Length Sepal.Width Petal.Length Petal.Width
  <fct>             <dbl>       <dbl>        <dbl>       <dbl>
1 setosa             5.01        3.43         1.46       0.246
2 versicolor         5.94        2.77         4.26       1.33 
3 virginica          6.59        2.97         5.55       2.03 

在上述代码中,我们使用了 across() 函数对所有列进行汇总,其中 everything() 用于指定汇总所有列。mean() 函数用于计算平均值。最后,使用 %>% 运算符将两个函数连接起来,得到最终的汇总结果。

在上述代码中,汇总的列数为 4,分别为 Sepal.Length、Sepal.Width、Petal.Length 和 Petal.Width。

总结

本文介绍了如何在 R 中使用 dplyr 汇总多列。使用 group_by()summarize() 函数,可以对数据进行灵活的汇总,满足不同情况下的需求。