【问题标题】:Replacing Nulls for one Variable based off another基于另一个变量替换一个变量的空值
【发布时间】:2019-09-01 08:28:35
【问题描述】:

我有一个由测量变量和基于这些测量的分类变量组成的数据集。即 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[...]

【问题讨论】:

  • 如果没有可重现的例子,这只是一个猜测:当您替换 NA Y1 时,您只需使用 Y1 为 NA 的 X1:Data$Y1[is.na(Data$Y1)] &lt;- ifelse(Data$X1[is.na(Data$Y1)] &lt;34.5, 0, 1)
  • 丹似乎成功了。谢谢一百万。

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


【解决方案1】:

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

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

这可能不是最充分的方法,但是当您的数据集不是很大时,逻辑非常清晰并且运行速度相当快

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 2023-01-20
    • 2019-01-07
    • 2015-03-19
    • 2021-02-22
    • 2011-04-23
    • 2022-11-17
    • 1970-01-01
    相关资源
    最近更新 更多