假设我有以下数据帧:
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)
但是没有用,有什么建议吗?谢谢!
我们可以使用rbindlist
from 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
从中的另一个选择是将多个数据帧行绑定在一起dplyr
的有效实现do.call(rbind, ...)
。
library(dplyr)
bind_rows(a,b)
#Source: local data frame [2 x 4]
# A B C D
# (dbl) (dbl) (dbl) (dbl)
#1 3 9 10 6
#2 1 2 NA 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句