2015-03-30 54 views
1

我有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 

我需要POLYSTRASpp使得最終結果合併這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,我不能讓列正確排列。

回答

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)) 
+0

你能幫我這個問題[HTTP:/ /stackoverflow.com/questions/35484595/data-frame-merge-and-selection-of-values-which-are-common-in-2-data-frames] – user3253470 2016-02-18 16:25:10