合并两个长度不等的数据帧,并用NA填充缺失值

问题描述

我有两个数据帧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>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...