我有两个大数据框。最小的,可复制的示例如下所示:
A <- data.frame(A=c("a","b","c","d"),B=c(1,2,3,4),C=c(1,NA,NA),D=c(1,4))
A
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 NA 3
4 d 4 NA 4
B <- data.frame(A=c("c",B=c(3,C=c(3,4))
B
A B C
1 c 3 3
2 d 4 4
对于在A中具有NA的每一行,我在B中都有一个对应的行,并替换了缺失值。我想将两个数据帧A和B合并到一个“公用”数据帧AB中,以将数据帧A列C中的NA替换为它们在数据帧B列C中的对应值。结果应如下所示:
AB <- data.frame(A=c("a",4))
AB
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 3 3
4 d 4 4 4
我得到的“最接近的”(也不是最接近的)是以下代码:
AB <- merge(A,B,all.x = TRUE)
AB
A B C D
1 a 1 1 1
2 b 2 2 2
3 c 3 NA 3
4 d 4 NA 4
很明显,仅使用A中的变量。我已经咨询了以下问题:
- How to join (merge) data frames (inner,outer,left,right)
- Merging data frames with different number of rows and different columns
请考虑实际数据帧要大得多。如果您需要任何其他信息,请告诉我。预先感谢!