我应该使用哪种类型的连接
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)
我有两个列数不同的数据库。第二个数据库的所有列都包含在第二个数据库中。两个数据库中的患者也不同。我需要合并这两个数据库。合并功能(或 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)