将一个数据帧中的NA值替换为第二个数据帧中的值

时间:2020-04-21 17:59:44

标签: r dataframe

我有两个看起来像这样的数据框:

df1:

     A    B    C    D   E   F.              EMAIL
1   78   46   65   59  NA  NA. bill@microsoft.com
2   60   51   64   67  NA  NA. bill@microsoft.com
3   72   83   54   72  NA  NA. bill@microsoft.com

df2:

     A    B    C    D   E   F.              EMAIL
1   NA   NA   NA   NA  71  99. bill@microsoft.com
2   NA   NA   NA   NA  53  74. bill@microsoft.com

我最终想要得到的是: df3

     A    B    C    D   E   F               EMAIL
1   78   46   65   59  71  99. bill@microsoft.com
2   60   51   64   67  53  74. bill@microsoft.com
3   72   83   54   72  NA  NA. bill@microsoft.com

我尝试了合并,合并,联接,rqdatable,但都没有成功。我是R的新手,并且关于如何实现此目标的想法不多了。如何用一个秒的值替换一个数据帧的值?

谢谢! -g

2 个答案:

答案 0 :(得分:4)

Use Default

答案 1 :(得分:1)

我们可以使用data.table方法

library(data.table)
nm1 <- c('A', 'B', 'C', 'D', 'E', 'F')
setDT(df1)[, (nm1) := Map(fcoalesce, .SD, df2[nm1]), .SDcols = nm1]