17 数据处理之数据聚合与汇总

在上一篇教程中,我们学习了如何对数据进行选择与过滤。这为我们后续的数据聚合与汇总打下了良好的基础。在本篇中,我们将深入探讨如何使用 R 语言对数据进行聚合,从而方便我们对数据进行汇总分析。接下来,我们将结合实例,逐步理解这一过程。

1. 什么是数据聚合与汇总?

在数据分析中,数据聚合指的是将数据集中的多个部分组合成一个总结性的信息,通常是对特定变量进行统计计算,比如求平均值、最大值、最小值等。而数据汇总则是指对这些聚合结果进行展示,以便于更好地理解数据的结构和特征。

2. 使用 aggregate() 函数进行数据聚合

R 语言提供了强大的数据处理功能,其中就包括了用于数据聚合的 aggregate() 函数。我们首先来看看这个函数的基本用法。

示例数据

让我们首先创建一个示例数据框,包含一些学生的考试成绩信息。

1
2
3
4
5
6
# 创建数据框
data <- data.frame(
student = c("Alice", "Bob", "Alice", "Bob", "Alice", "Bob"),
subject = c("Math", "Math", "English", "English", "Science", "Science"),
score = c(85, 78, 92, 88, 95, 80)
)

使用 aggregate()

假设我们想要计算每个学生在各科目的平均分,可以使用 aggregate() 函数实现。

1
2
# 数据聚合
average_scores <- aggregate(score ~ student + subject, data = data, FUN = mean)

在这个例子中,score ~ student + subject 表示我们想基于 studentsubject 这两个变量进行聚合。data 是我们使用的数据框,FUN 指定了我们要使用的聚合函数,这里是计算平均值 mean

结果展示

执行上述代码后,你会得到一个新的数据框 average_scores,其内容类似于:

1
2
3
4
5
6
7
  student  subject score
1 Alice English 92
2 Alice Math 85
3 Alice Science 95
4 Bob English 88
5 Bob Math 78
6 Bob Science 80

3. 使用 dplyr 包进行数据聚合

除了基础的 aggregate() 函数,dplyr 包提供了一种更直观、更易于操作的语法。其核心函数 group_by()summarize() 可以快速完成数据聚合任务。

示例数据

我们仍然使用之前的数据框 data

使用 dplyr 进行数据聚合

首先,你需要加载 dplyr 包:

1
library(dplyr)

接下来,我们可以用 dplyr 来计算每个学生在各科目的平均分:

1
2
3
4
# 数据聚合
average_scores_dplyr <- data %>%
group_by(student, subject) %>%
summarize(mean_score = mean(score))

结果展示

执行上述代码后,average_scores_dplyr 的结果将与使用 aggregate() 得到的结果相同。

4. 其他聚合函数

在数据聚合时,除了计算平均值外,我们可能还会使用其他统计函数。以下是一些常用的函数:

  • sum(): 计算和
  • max(): 计算最大值
  • min(): 计算最小值
  • n(): 计算行数

示例:计算总分数

以下例子展示了如何计算每个学生在所有科目中的总分:

1
2
3
total_scores <- data %>%
group_by(student) %>%
summarize(total_score = sum(score))

结果展示

执行上述代码后,total_scores 的内容可能如下:

1
2
3
4
5
# A tibble: 2 × 2
student total_score
<chr> <dbl>
1 Alice 272
2 Bob 246

5. 小结

在本篇教程中,我们学习了如何在 R 中进行数据的聚合与汇总。我们探讨了aggregate()函数的基本用法,同时也展示了如何利用 dplyr 包来更加直观地处理数据聚合任务。无论是计算平均分、总分,还是使用其他聚合函数,这些技巧都是数据分析中至关重要的部分。

接下来的一篇教程中,我们将讨论数据变形的相关内容,以便更全面地理解数据处理的技巧与应用。希望本篇内容对你的 R 学习旅程有所帮助!

17 数据处理之数据聚合与汇总

https://zglg.work/r-lang-zero/17/

作者

AI免费学习网(郭震)

发布于

2024-08-13

更新于

2024-08-13

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论