我有5个不同年份的常见数据框:
2010
POLY STRA Spp breeders2010 nonbreeders2010
1 1 mall 20 5
1 1 cite 6 0
1 3 mall 10 0
2 1 gadw 6 2
2011
POLY STRA Spp breeders2011 nonbreeders2011
1 1 mall 24 2
1 1 cite 8 2
1 3 mall 14 4
2 1 gadw 8 4
2012
POLY STRA Spp breeders2012 nonbreeders2012
1 1 mall 20 5
1 1 cite 6 0
1 3 mall 10 0
2 1 gadw 6 2
我需要按POLY
,STRA
和Spp
合并这5个数据框,以便最终结果如下:
POLY STRA Spp breeders2010 nonbreeders2010 breeders2011 nonbreeders2011 breeders2012 nonbreeders2012 breeders2013 nonbreeders2013 breeders2014 nonbreeders2014
1 1 mall 20 5 24 2 20 5 .....
1 1 cite 6 0 8 2 6 0 ......
1 3 mall 10 0 14 4 10 0 .....
2 1 gadw 6 2 8 4 6 2 .....
我尝试过merge和cbind,但我无法让列正确排列。
答案 0 :(得分:2)
我认为merge
应该没问题。
对于多个数据框,您可以使用Reduce
:
Reduce(merge, list(df1, df2, df3, df4, df5))
如果任何数据框中有任何缺失的行all = TRUE
可能会有所帮助:
Reduce(function(x, y) merge(x, y, all = TRUE), list(df1, df2, df3, df4, df5))