2016-05-17 15 views
2

これについての助けがあれば幸いです。相互に排他的ではない変数を相互排他的な変数に再コード

私は、互いに排他的にしたいと思っている4つの重複レース変数を持っており、残りは新しい変数の混在レース変数にコードしています。私はifとifelseを使い、悲惨に失敗しようとしています。

white<-c(1,1,1,NA) 
black<-c(0,NA,1,0) 
asian<-c(0,0,0,0) 
aian<- c(0,0,0,0)  
white.n<-c(1,1,0,NA) 
mix<-c(0,0,1,0) 

df<-cbind(white,black,asian,aian,white.n,mix) 
df 

     white black asian aian white.n mix 
[1,]  1  0  0 0  1 0 
[2,]  1 NA  0 0  1 0 
[3,]  1  1  0 0  0 1 
[4,] NA  0  0 0  NA 0 

いずれの考えも高く評価されます。

+0

あなたはどの言語を使用していますか? – pppp

答えて

1

すべてを相互排他的な変数にコーディングする新しい列が必要ですか?このような?

white<-c(1,1,1,NA,0) 
black<-c(0,NA,1,0,0) 
asian<-c(0,0,0,0,1) 
white<-c(1,1,0,NA,0) 

df<-data.frame(white,black,asian,white) 
df 

row.count <- rowSums(df, na.rm=T) 
df$code[row.count > 1] <- "Mixed" 
df$code[row.count == 1] <- names(which.max(df[row.count == 1, ]))