R 需要通过多个公共列合并多个数据帧
我有5个不同年份的通用数据框:R 需要通过多个公共列合并多个数据帧,r,merge,dataframe,R,Merge,Dataframe,我有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 Sp
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 .....
我尝试过合并和cbind,但无法使列正确对齐 我认为
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))
你能帮我回答这个问题吗[