【发布时间】:2020-07-06 15:39:16
【问题描述】:
对于来自新 R 用户的一个可能非常基本的问题,提前道歉:我有两个不同的年龄数值变量(age1,age2),它们都包含一些缺失值。我想创建一个包含其他两个变量的所有值(所有非 NA 值)的变量,但很难做到这一点。 以这两列为例
age1 <- c(NA, 21, 22, NA, 24, 25, NA, NA)
age2 <- c(20, NA, NA, 23, NA, NA, 26, NA)
dt <- data.frame(age1, age2)
我努力将它们合并为一列,试图得到这样的结果:
dt$age <- c(20, 21, 22, 23, 24, 25, 26, NA)
我尝试过类似的方法:
dt$age[complete.cases(dt$age1)] <- dt$age1
dt$age[complete.cases(dt$age2)] <- dt$age2
或
dt$age[dt$age1>0] <- dt$age1
dt$age[dt$age2>0] <- dt$age2
或
dt$age[na.omit(dt$age1)] <- dt$age1
dt$age[na.omit(dt$age2)] <- dt$age2
但会收到错误消息,例如:
- 要替换的项目数不是替换长度的倍数
- 下标作业中不允许使用 NA
我觉得应该有一些简单的方法来做到这一点,但很难找到它。非常感谢任何有关解决方案的提示。
你好,比约恩
【问题讨论】:
标签: r data-cleaning