我应该使用哪种类型的连接

What type of joining should I use

我有两个列数不同的数据库。第二个数据库的所有列都包含在第二个数据库中。两个数据库中的患者也不同。我需要合并这两个数据库。合并功能(或 dplyr_join)原则上不起作用,因为我必须覆盖数据库。绑定 (rowbind) 也不应该起作用,因为我有不同的列。简单的方法是什么?

mydata<-data.frame(
  ID=c(1,1,1,2,2),B=rep("b",5),C=rep("c",5),D=rep("d",5)
)

mydata2<-data.frame(ID=c(3,4),B=c("b2","b2"),C=c("c2","c2"))

预期的数据集如下:

  ID  B  C    D
1  1  b  c    d
2  1  b  c    d
3  1  b  c    d
4  2  b  c    d
5  2  b  c    d
6  3 b2 c2 <NA>
7  4 b2 c2 <NA>
dplyr::full_join(mydata,mydata2)

似乎有效。

一个merge就够了

merge( mydata, mydata2, all=T )
  ID  B  C    D
1  1  b  c    d
2  1  b  c    d
3  1  b  c    d
4  2  b  c    d
5  2  b  c    d
6  3 b2 c2 <NA>
7  4 b2 c2 <NA>

您可以使用bind_rows() 来组合具有不同列数的两个数据框。更多

library(dplyr) 

bind_rows(mydata, mydata2)