【问题标题】:Recoding non-mutually exclusive variables into mutually exclusive variables将非互斥变量重新编码为互斥变量
【发布时间】:2016-05-17 05:19:08
【问题描述】:

对此的任何帮助将不胜感激。

我有四个重叠的竞态变量,我想将它们互斥并将其余部分编码为一个新的变量混合竞态变量。我一直在尝试使用 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

任何想法将不胜感激。

【问题讨论】:

  • 你使用什么语言?

标签: recode


【解决方案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, ]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多