如何在R的data.table对象中,根据多个列计算某一列的各行之和?


要根据R的data.table对象中的多个列计算某一列的各行之和,我们可以按照以下步骤:

  • 首先,创建一个data.table对象。

  • 然后,使用aggregate函数根据多个列计算某一列的各行之和。

示例

创建data.table对象

让我们创建一个data.table对象,如下所示:

library(data.table) F1<-sample(c("Male","Female"),25,replace=TRUE) F2<-sample(c("Low","Medium","High"),25,replace=TRUE) F3<-sample(c("I","II","III"),25,replace=TRUE) Response<-sample(1:100,25) DT<-data.table(F1,F2,F3,Response) DT

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出可能因您的系统而异):

     F1     F2    F3 Response
1:  Male   Medium  I    2
2:  Female Low     I   32
3:  Female High   II   43
4:  Male   Medium  I   24
5:  Male   Medium III  88
6:  Female High    I   95
7:  Male   Low    II   68
8:  Female High    I   74
9:  Female High   II   12
10: Male   High   III  42
11: Male   High   I    62
12: Male   High   III  67
13: Female High   III  38
14: Male   Low    III  73
15: Female Low    III   3
16: Male   Medium III  98
17: Female Low     I  100
18: Male   Medium  II  89
19: Female High    II  81
20: Female Low      I  53
21: Female Medium  II  91
22: Female High    II  63
23: Female High    II  60
24: Male   Medium  II  72
25: Female Medium  III 56
    F1      F2     F3 Response

根据多个列计算某一列的各行之和

使用aggregate函数根据F1、F2和F3列计算Response列的各行之和,如下所示:

library(data.table) F1<-sample(c("Male","Female"),25,replace=TRUE) F2<-sample(c("Low","Medium","High"),25,replace=TRUE) F3<-sample(c("I","II","III"),25,replace=TRUE) Response<-sample(1:100,25) DT<-data.table(F1,F2,F3,Response) DT[,sum(Response),by=.(F1,F2,F3)]

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

     F1     F2    F3   V1
1:  Male   Medium I    26
2:  Female Low    I   185
3:  Female High   II  259
4:  Male   Medium III 186
5:  Female High   I   169
6:  Male   Low    II   68
7:  Male   High   III 109
8:  Male   High   I   62
9:  Female High   III 38
10: Male   Low    III 73
11: Female Low    III  3
12: Male   Medium II 161
13: Female Medium II  91
14: Female Medium III 56

更新于:2021年11月12日

1K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告