📅  最后修改于: 2023-12-03 15:10:08.322000             🧑  作者: Mango
在 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 中按照多列进行分组非常简单。只需要指定需要返回的列和要进行分组的列,即可得到想要的结果。