2017-02-08 1 views
-1

現時点で私は投票データのデータを持っていますが、それぞれの人が複数のポリシーに投票したかどうか、投票の時点で不在でした特定のポリシー。はい/いいえ/不在のデータをバイナリ・マトリックスに変換する

全体的には23のポリシーがありますが、データをバイナリに変換する方法はわかりません。 データセットは、明らかに "n" = no、 "y" = yes、 "a" = absentに設定されています

誰かが私にRのデータの変換方法私はバイナリマトリックスに感謝します!例えば

答えて

0

+2

代わりに、 'TRUE'と' FALSE'を使用してください。そして、もちろん、マトリックスはあなたのアプローチの文字マトリックスになります。 – Roland

+0

あなたのアプローチに従えば、私はそうするかもしれません: 'm [m == 'a'] < - NA; m [] < - m == 'y'; storage.mode(m)< - "logical" ' – Roland

1
m <- as.matrix(cbind(c('y','y','y'),c('n','n','n'),c('a','a','a'))) 
m[m == 'y'] <- 1 
m[m == 'n'] <- 0 
m[m == 'a'] <- NA 

これはmodel.matrixを用いて行うことができます。これは、多くの場合Rで自動的に行われます(例:回帰分析。

> set.seed(1) 
> (df <- data.frame(id=1:10,vote=sample(c("yes","no","absent"),10,replace=TRUE))) 
    id vote 
1 1 yes 
2 2  no 
3 3  no 
4 4 absent 
5 5 yes 
6 6 absent 
7 7 absent 
8 8  no 
9 9  no 
10 10 yes 
> model.matrix(~.-1,df) 
    id voteabsent voteno voteyes 
1 1   0  0  1 
2 2   0  1  0 
3 3   0  1  0 
4 4   1  0  0 
5 5   0  0  1 
6 6   1  0  0 
7 7   1  0  0 
8 8   0  1  0 
9 9   0  1  0 
10 10   0  0  1 
関連する問題