要按多个列组的data.table
行进行平均值计算,可以使用data.table
包中的by
参数和.SD
符号。以下是一个示例代码:
library(data.table)
# 创建一个示例数据表
dt <- data.table(
group1 = c("A", "A", "B", "B", "C", "C"),
group2 = c("X", "Y", "X", "Y", "X", "Y"),
value = c(1, 2, 3, 4, 5, 6)
)
# 按group1和group2列组合进行行平均值计算
avg_dt <- dt[, .(avg_value = mean(value)), by = .(group1, group2)]
# 输出结果
print(avg_dt)
输出结果如下:
group1 group2 avg_value
1: A X 1.0
2: A Y 2.0
3: B X 3.0
4: B Y 4.0
5: C X 5.0
6: C Y 6.0
在代码中,我们首先使用data.table
函数创建了一个示例数据表dt
。然后,使用dt[, .(avg_value = mean(value)), by = .(group1, group2)]
语句按"group1"和"group2"列组合计算了"value"列的平均值,并将结果赋给了新的数据表avg_dt
。最后,使用print
函数输出了计算结果。
注意,.SD
符号表示每个组的子数据表,可以在计算中引用。例如,如果我们还想计算每个组的行数,可以将.N
添加到.SD
中,如dt[, .(avg_value = mean(value), count = .N), by = .(group1, group2)]
。
上一篇:按多个列是否有值将记录拆分
下一篇:按多个嵌套属性进行过滤