如何在r中转换数据帧

时间:2015-06-16 07:25:14

标签: r tidyr

我有一个数据框

newDF<-data.frame(type=c(rep("A",4),
                  rep("B",2),rep("C",3),
                  rep("D",4),rep("E",4)), 
                  cluster=sample(1:4,17,replace=T), 
                  count=sample(1:20, 17, rep=T), 
                  sum=sample(30:1000,17,rep=T))

我需要获得2个新的数据帧,它们将“簇”作为列,键入行并计为填充。(第二个表将是相同的,但fill = sum,而不是count)。这两个表中必须有一些NA,因为newDF有17行,但是两个新数据帧必须是5x5

如何创建这2个5x5数据帧?

2 个答案:

答案 0 :(得分:0)

对不起,我已经找到了答案

spread(newDF[,-3],key=cluster, value=sum)

答案 1 :(得分:0)

试试这个:

library(reshape2)
countoutput <- dcast(newDF,type~cluster,value.var = "count",fun.aggregate = sum)
sumoutput <- dcast(newDF,type~cluster,value.var = "sum",fun.aggregate = sum)

它用0填充缺失值,但您可以通过添加参数fill = -1来指定不同的数字(例如-1)以帮助突出显示哪些缺失值...我似乎无法得到它把NA改为0,但我没试过很长时间。