基于另一个替换一个变量的Null

问题描述 投票:0回答:1

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

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

所以我想用下面的代码做的是说如果Y1中有空,检查相应的X1值是否小于34.5。如果是,则给Y1 0,否则为1。

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

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

r replace missing-data categorical-data imputation
1个回答
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)
  }
}

它可能不是最有效的方式,但逻辑非常清晰,并且当您的数据集不是很大时,它运行得相当快

© www.soinside.com 2019 - 2024. All rights reserved.