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

How do I replace missing value with values from another column in R

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

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

如何实现?

您可以执行以下操作:

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