在另一个 df 的相同位置用 NA 替换值
Replace Values with NA by same position in another 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
如何在 df1
的相同位置用 NA
替换 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
我有两个数据框:
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
替换 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