假设我有以下数据框:
a<-data.frame(A=3,B=9,C=10,D=6)
print(a)
A B C D
1 3 9 10 6
b<-data.frame(A=1,B=2,D=5)
print(b)
A B D
1 1 2 5
我试图按行将它们绑定在一起,以便相应的列名排列,并且在相应值缺失的地方产生NA,以便最终结果为:
print(c)
A B C D
1 3 9 6 10
2 1 2 NA 5
我尝试了以下内容:
rbind(a,b)
merge(a,b,byrow=TRUE)
但是没有工作,有什么建议吗?谢谢!
答案 0 :(得分:3)
我们可以使用rbindlist
中的data.table
。我们将data.frames保留在list
中,并使用带有rbindlist
选项的fill=TRUE
为数据集中的缺失列生成NA。
library(data.table)
rbindlist(list(a,b), fill=TRUE)
# A B C D
#1: 3 9 10 6
#2: 1 2 NA 5
另一个选项是来自bind_rows
的{{1}},这是dplyr
的有效实现,可以将多个数据帧绑定在一起。
do.call(rbind, ...)
答案 1 :(得分:2)
您可以使用dplyr
中实现的联接。
full_join(a,b)
Joining by: c("A", "B", "D")
A B C D
1 3 9 10 6
2 1 2 NA 5