如何在R中使用data.table对象创建带有求和功能的透视表?


要使用存储在R中data.table对象的数据创建带有求和功能的透视表,我们可以按照以下步骤操作:

  • 首先,创建一个包含两个分类列和一个数值列的data.table对象。

  • 然后,使用reshape2包中的dcast函数为存储在data.table对象中的数据创建透视表。

示例

创建data.table对象

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

library(data.table)
Factor<-sample(c("I","II","III","IV","V","VI","VII"),25,replace=TRUE)
Level<-sample(c("Low","Medium","High"),25,replace=TRUE)
Response<-sample(1:100,25)
DT<-data.table(Factor,Level,Response)
DT

输出

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

    Factor Level Response
1:  III    Low    82
2:  IV     Low    42
3:  III    High   87
4:  IV     High   97
5:  IV     Low    29
6:  V      Low    20
7:  V      Medium 50
8:  II     Low    23
9:  I      Low    26
10: V      Medium 39
11: V      Low    13
12: I      High   92
13: I      Low    74
14: III    High    9
15: V      Medium 61
16: II     Medium  2
17: VI     Medium 38
18: IV     Medium 98
19: VI     Low    76
20: I      High   85
21: IV     Low    91
22: II     High   60
23: V      Medium 71
24: IV     High    8
25: I      High   55
   Factor  Level Response

创建透视表

使用reshape2包中的dcast函数为存储在data.table对象DT中的数据创建透视表:

library(data.table)
Factor<-sample(c("I","II","III","IV","V","VI","VII"),25,replace=TRUE)
Level<-sample(c("Low","Medium","High"),25,replace=TRUE)
Response<-sample(1:100,25)
DT<-data.table(Factor,Level,Response)
library(reshape2) dcast(data=DT,formula=Factor~Level,fun.aggregate=sum,value.var="Response")

输出

 Factor High Low Medium
1 I     232  100   0
2 II     60   23   2
3 III    96   82   0
4 IV    105  162  98
5 V       0   33 221
6 VI      0   76  38

更新于: 2021年11月16日

167 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.