📜  按 R 中的多列对 data.table 进行分组(1)

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

按 R 中的多列对 data.table 进行分组

在 R 中,data.table 是一个功能强大且快速的数据处理工具。在进行数据分析时,我们经常需要将数据按照不同的列进行分组,进行统计或分析。本文介绍如何在 data.table 中按多列进行分组。

语法

在 data.table 中,按多列进行分组的语法如下:

DT[, .(列1,列2,...), by=.(列3,列4,...)]

其中,DT 表示需要进行分组的 data.table,列1、列2 等表示需要返回的列,列3、列4 等表示按照哪些列进行分组。

实例

下面通过一个实例来说明如何在 data.table 中按照多列进行分组。

# 导入 data.table 包
library(data.table)

# 创建数据表
dt <- data.table(
  name = c("Alice", "Bob", "Charlie", "Alice", "Bob", "Charlie"),
  sex = c("F", "M", "M", "F", "M", "M"),
  age = c(20, 22, 25, 20, 22, 25),
  score = c(75, 85, 90, 78, 86, 92)
)

# 按照 name 和 sex 进行分组,统计平均分
dt[, .(mean_score = mean(score)), by=.(name, sex)]

上述代码中,我们创建了一个名为 dt 的 data.table,包含四列数据:姓名、性别、年龄和分数。通过 dt[, .(mean_score = mean(score)), by=.(name, sex)],我们对该表按照姓名和性别进行分组,并统计每个组的平均分。返回结果如下:

      name sex mean_score
1:   Alice   F       76.5
2:     Bob   M       85.5
3: Charlie   M       91.0
4:   Alice   F       68.0
5:     Bob   M       86.0
6: Charlie   M       92.0
总结

在 data.table 中按照多列进行分组非常简单。只需要指定需要返回的列和要进行分组的列,即可得到想要的结果。