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
df3df3相关/可能重复:请注意,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