3

我需要以不同的方式查看数据框中的数据。问题来了。。

我有一个数据框如下

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

我能够通过使用

table(Person,Item) 在 R 中

我的新要求是查看数据如下。显示个人在按交易类型(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中有更好的方法来进行这种类型的转换吗?

4

1 回答 1

1

您的方式(通过创建新列paste)可能是最简单的。你也可以这样做:

require(reshape2)
dcast(Person~Item+BuyOrSell,data=df,fun.aggregate=length,drop=FALSE)
于 2013-03-14T19:03:54.697 回答