r语言 - 将值替换为 NA 在另一个 df 中的相同位置



我有两个数据帧:

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

如何用NAdf1的位置替换df2

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

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

在我看来,与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
df3=`is.na<-`(df2,is.na(df1))
df3
Col1 Col2 Col3 Col4
1    7    0    5    7
2   NA    8   NA    0
3    9    9   NA    2

甚至

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

最新更新