问题描述
我有两个数据帧A和B,它们的列col1相同。
数据框A:
col1<-c(1,2,3,4,5,)
col2<-c("a","a","b","b")
A<-data.frame(col1,col2)
A
col1 col2
1 a
2 a
3 a
4 b
5 b
数据框B:
col1<-c(1,4)
col2b<-c("a","b")
B<-data.frame(col1,col2)
B
col1 col2b
1 a
3 b
4 b
如您所见,与数据帧A相比,数据帧B在col1中缺少一些值。 我想使用col1合并A和B,并用NA填充B列中的缺失值(因此,没有回收!)。 我想要的输出是这样的:
col1 col2 col2b
1 a a
2 a <NA>
3 a b
4 b b
5 b <NA>
到目前为止,我还尝试过使用cbind和cbind.na,但没有运气。任何帮助或建议,将不胜感激!
解决方法
使用dplyr::left_join
:
library(dplyr)
A %>%
left_join(B,by = c("col1"))
col1 col2 col2b
1 1 a a
2 2 a <NA>
3 3 a b
4 4 b b
5 5 b <NA>