如何为存储在R中data.table对象中的数据创建带有总和的数据透视表?

要为存储data.table在 R中的对象中的数据创建带有总和的数据透视表,我们可以按照以下步骤操作 -

  • 首先,创建一个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
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

    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

猜你喜欢