根据另一个变量替换空变量

时间:2019-04-10 19:30:38

标签: r replace missing-data categorical-data imputation

我有一个由测量变量和基于这些度量的分类变量组成的数据集。即X1是测量变量,根据X1中的测量值,Y1将为0或1。

X1变量中有很多Null值,我已经替换了它们。我现在尝试根据X1中的新值替换相应的Y1变量。

因此,我要使用以下代码尝试说Y1中是否存在Null,请检查相应的X1值是否小于34.5。如果是,则将Y1设为0,否则为1。

Data$Y1[is.na(Data$Y1)] <- ifelse(Data$X1 <34.5, 0, 1)

我得到的错误: 警告信息: 在x [...] <-m中:   要替换的项目数不是替换长度的倍数

1 个答案:

答案 0 :(得分:0)

一个简单的循环就可以解决问题

for (i in 1:nrow(Data){
  if (is.na(Data$Y1[i])==TRUE){
    Data$Y1[i] <- ifelse(Data$X1[i] <34.5, 0, 1)
  }
}

这可能不是最充分的方法,但是逻辑很清楚,并且在数据集不大时运行得很快