如何为存储在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(thisoutputwillvaryonyoursystemduetorandomization)-
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