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

どんな考えでも大歓迎です。

4

1 に答える 1

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, ]))
于 2016-05-27T06:25:26.487 に答える