仅将R中大型多列中的NA替换为另一个 Dataframe [重复]

xsuvu9jc  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(138)
    • 此问题在此处已有答案**:

R: replacing NAs in a data.frame with values in the same position in another dataframe(5个答案)
2天前关闭。
我有一个带有一些NA值的大型 Dataframe (df1):

ID X01 X02 X03 X04      ... X100
1 A01  NA  NA   4   2      ...   NA
2 A02   2  NA   2   2      ...    4
3 A03  NA   2  NA  NA      ...    4
4 A04   2   4   4  NA      ...   NA
5 A05  NA  NA   4   2      ...    2
6 A06   2  NA  NA   4      ...   NA

然后我有一个df2如下

ID X01 X02 X03 X04      ... X100
1 A01   1  99   4   2      ...    1
2 A02   1  99   1   2      ...    4
3 A03  99   1  99   1      ...    4
4 A04   2   4   4  99      ...    1
5 A05  99   1   4   2      ...    2
6 A06   2  99   1   4      ...   99

我想用另一个 Dataframe (df2)相同位置的值替换df1中的NA,并保留df1的值而不是原始NA。
生成的df3应该是这样

ID X01 X02 X03 X04      ... X100
1 A01   1  99   4   2      ...    1
2 A02   2  99   2   2      ...    4
3 A03  99   2  99   1      ...    4
4 A04   2   4   4  99      ...    1
5 A05  99   1   4   2      ...    2
6 A06   2  99   1   4      ...   99

我试过了但没用。

df1 %>% dplyr::rows_update(df2, by = "ID)

任何帮助将是伟大的谢谢!!

gab6jxml

gab6jxml1#

您可以使用dplyr::coalesce,例如

df1 <- mtcars
# create some NA entries
df1[1,] <- NA
df1[,1] <- NA

df2 <- mtcars

df <- dplyr::coalesce(df1, df2)
df

相关问题