我需要以不同的方式查看数据框中的数据。问题就在这里..
我有一个数据框,如下所示
Person Item BuyOrSell
1 a B
1 b S
1 a S
2 d B
3 a S
3 e S
我需要把它变成这样。显示个人在单个项目上进行的所有交易的总和。
Person a b d e
1 2 1 0 0
2 0 0 1 0
3 1 0 0 1
我能够通过使用
R中的table(Person,Item)
我的新要求是按如下方式查看数据。显示人员在按事务处理类型(B或S)细分的单个项目上进行的所有事务处理的总和
Person aB aS bB bS dB dS eB eS
1 1 1 0 1 0 0 0 0
2 0 0 0 0 1 0 0 0
3 1 0 0 0 0 0 0 1
因此,我创建了一个新列,并追加了Item和BuyOrSell的值。
df$newcol<-paste(Item,"-",BuyOrSell,sep="")
table(Person,newcol)
并能够达到上述结果。
在R中有没有更好的方法来做这种类型的转换?
发布于 2013-03-14 19:03:55
您的方法(通过paste
创建一个新列)可能是最简单的。你也可以这样做:
require(reshape2)
dcast(Person~Item+BuyOrSell,data=df,fun.aggregate=length,drop=FALSE)
https://stackoverflow.com/questions/15417698
复制相似问题