我需要以不同的方式查看数据框中的数据。这是问题..
我有一个数据框如下
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中有更好的方法来进行这种转换吗?
答案 0 :(得分:1)
您的方式(通过paste
创建新列)可能是最简单的方法。你也可以这样做:
require(reshape2)
dcast(Person~Item+BuyOrSell,data=df,fun.aggregate=length,drop=FALSE)