11

次の形式を変換しようとしています。

mydata <- data.frame(movie = c("Titanic", "Departed"), 
                     actor1 = c("Leo", "Jack"), 
                     actor2 = c("Kate", "Leo"))

     movie actor1 actor2
1  Titanic    Leo   Kate
2 Departed   Jack    Leo

バイナリ応答変数へ:

     movie Leo Kate Jack
1  Titanic   1    1    0
2 Departed   1    0    1

「行データをバイナリ列に変換する」で説明されている解決策を試しました が、3 つではなく 2 つの変数に対して機能させることができました。

これを行うためのクリーンな方法があれば、本当に感謝しています。

4

5 に答える 5

7

を再形成する 1 つの方法は、 と を使用しdata.framereshape2パッケージを使用することです。例えば:meltdcast

library(reshape2)
long.mydata <- melt(mydata, id.vars = "movie")
wide.mydata <- dcast(long.mydata, movie ~ value, function(x) 1, fill = 0)

キャスト後に内部を埋めるものを制御するのパラメータfun.aggregatefillパラメータに注意してください。dcast

于 2013-08-27T23:01:21.737 に答える
1

reshape2-package には -function もありますrecast

コード:

library(reshape2)
recast(mydata, id.var = 'movie', movie ~ value, fun.aggregate = length)

結果:

     movie Jack Kate Leo
1 Departed    1    0   1
2  Titanic    0    1   1
于 2017-11-26T09:01:34.733 に答える