如何使用R中另一列的值替换缺失值

时间:2018-04-19 09:04:32

标签: r na

我的数据框看起来像这样:

ID var1 var2 var3
per1 1 NA 3
per2 3 NA 5
per3 NA 4 6
per4 4 7 9
per5 7 NA NA
per6 NA 8 NA

我想用第3列(var2)中的值替换第2列(var1)中的缺失值,但前提是缺少var1中的值。所以输出应该如下所示:

ID var1 var2 var3
per1 1 NA 3
per2 3 NA 5
per3 4 4 6
per4 4 7 9
per5 7 NA NA
per6 8 8 NA

我认为这样的事情会奏效:

df$var1[is.na(df$var1)] <- df$var2

但不幸的是,它没有,我收到以下错误消息:

Warning message:
In df$var1[is.na(df$var1)] <- df$var2.2 :
  number of items to replace is not a multiple of replacement length

我如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

df$var1[is.na(df$var1)] <- df$var2[is.na(df$var1)]