2016-05-17 18 views
2

Jede Hilfe mit diesem würde sehr geschätzt werden.Umcodieren sich nicht gegenseitig ausschließender Variablen in sich gegenseitig ausschließende Variablen

Ich habe vier sich überschneidende Race-Variablen, die ich gerne gegenseitig ausschließen möchte und den Rest in eine neue variable Mixed-Race-Variable umwandeln. Ich habe versucht, wenn und wenn ich else und scheitern kläglich.

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 

Alle Gedanken würden sehr geschätzt werden.

+0

Welche Sprache verwenden Sie? – pppp

Antwort

1

Sie wollen eine neue Spalte, die alles in eine sich gegenseitig ausschließende Variable codiert, oder? So was?

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, ])) 
Verwandte Themen