我需要以不同的方式查看数据框中的数据。问题来了..
我有一个数据框如下
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 中是否有更好的方法来进行这种类型的转换?
最佳答案
您的方法(通过paste
创建一个新列)可能是最简单的。你也可以这样做:
require(reshape2)
dcast(Person~Item+BuyOrSell,data=df,fun.aggregate=length,drop=FALSE)
关于r - R 中的数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15417698/