R 用NA替换另一df中相同位置的值

R 用NA替换另一df中相同位置的值,r,dplyr,na,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

我有两个数据帧:

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
如何将
df1
的相同位置替换为
NA

我希望我的最终df3如下所示:

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

在我看来,与
tidyverse
相比,base R更适合于此:

df2[is.na(df1)] <- NA
如果您确实需要
df3

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

df3
df3相关/可能重复:请注意,
replace
只不过是一个包装器,围绕
x[condition]@jaap使用您的解决方案,您正在制作数据帧的副本。。虽然这没有复制品。
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