我怎样才能让两个表互相填充 NA?

How can I make two tables fill each others NAs?

我遇到了两个数据框的一个小问题。基本上,两者都包含值和 NA,并且具有完全相同的格式(列、名称等),每个 table 长 292 行。

一个中的 NA 对应于另一个中的值,反之亦然,例如从顶部开始的前三行 table 是底部 table 中的 NA,而底部 table 中的第 4 行和第 5 行是顶部 table 中的 NA。

我正在寻找一种方法来合并这两个 table 以最小化 NA 的数量,即从顶部 table 和第 4 行开始第 1、2 和 3 行从底部 table 等等。 (我知道第 2 行在两者中都是 NA;最终结果仍然会有 NA,只是少了很多)。有人可以帮我吗?

P.S。我已经尝试了我从 base R 和 dplyr 包中知道的所有连接 and/or 合并函数。

提前致谢。

   > head(extracted1)
     sex feet inches in_inches  in_cm
1   Male    6      0        72 182.88
2   Male   NA     NA        NA     NA
3 Female    5      3        63 160.02
4 Female   NA     NA        NA     NA
5   Male   NA     NA        NA     NA
6   Male    6      0        72 182.88

head(extracted2)
     sex feet   inches in_inches in_cm
1   Male   NA       NA        NA    NA
2   Male   NA       NA        NA    NA
3 Female   NA       NA        NA    NA
4 Female    5 4.960630  64.96063   165
5   Male   16 9.181102 201.18110   511
6   Male   NA       NA        NA    NA

Base-r 中。此代码使用 complete.cases 从两个数据帧中获取没有 NA 的行,并将它们与 rbind

绑定在一起
rbind(extracted1[complete.cases(extracted1),],extracted2[complete.cases(extracted2),])


     sex feet   inches in_inches  in_cm
1   Male    6 0.000000  72.00000 182.88
3 Female    5 3.000000  63.00000 160.02
6   Male    6 0.000000  72.00000 182.88
4 Female    5 4.960630  64.96063 165.00
5   Male   16 9.181102 201.18110 511.00

编辑:

如果你想保持与 extracted1 相同的结构,你也可以在 Base-R

中执行以下操作
toreplace <- extracted2[complete.cases(extracted2),]
extracted1[as.numeric(row.names(toreplace)),] <- toreplace

     sex feet   inches in_inches  in_cm
1   Male    6 0.000000  72.00000 182.88
2   Male   NA       NA        NA     NA
3 Female    5 3.000000  63.00000 160.02
4 Female    5 4.960630  64.96063 165.00
5   Male   16 9.181102 201.18110 511.00
6   Male    6 0.000000  72.00000 182.88