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 に答える