将NA替换为另一个df中相同位置的值

时间:2018-06-12 18:43:05

标签: r dplyr na

我有两个数据帧:

df1
 Col1     Col2      Col3     Col4
    1        0         3        5 
   NA        1        NA        0
    2        3        NA        5

df2
 Col1     Col2      Col3     Col4
    7        0         5        7 
    0        8         0        0
    9        9         6        2

如何将df2替换为NAdf1相同的位置?

我希望我的最终df3看起来像这样:

 Col1     Col2      Col3     Col4
    7        0         5        7 
   NA        8        NA        0
    9        9        NA        2

2 个答案:

答案 0 :(得分:3)

在我看来,与tidyverse

相比,基础R更适合
df2[is.na(df1)] <- NA

给出:

> df2
  Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2

如果你真的需要df3

df3 <- df2
df3[is.na(df1)] <- NA

答案 1 :(得分:0)

df3=replace(df2,is.na(df1),NA)
 df3
  Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2

甚至

http