在R

时间:2019-11-16 20:31:48

标签: r statistics categorical-data

我有以下变量:

variable1 = c(1,1,0,1,0,0,0,1,0,1,1,0,0,1); 
variable2 = c(1,0,NA,1,NA,NA,NA,1,NA,0,0,NA,NA,1); 
variable3 = c(1,1,NA,1,NA,NA,NA,0,NA,1,1,NA,NA,1)

我需要重新编码var2和var3,以便当var1 = 0时,var2和var3 = 0(不丢失)。 我可以在R中使用if / else语法吗?

2 个答案:

答案 0 :(得分:1)

可以。试试这个:

var2 <- ifelse(variable1 == 0,
               0,
               variable2)
var3 <- ifelse(variable1 == 0,
               0,
               variable3)

答案 1 :(得分:1)

除了wusel的答案,还有以下几种常见的解决方法。

不使用ifelse仅填写NA值:

variable2[is.na(variable2)] <- 0
variable3[is.na(variable3)] <- 0

基于variable1而没有ifelse的索引:

variable2[variable1 == 0] <- 0
variable3[variable1 == 0] <- 0