2013-03-14 79 views
0

我有不同的data.frames行,我想加入组成一个大的data.frame。问题是我希望我的colnamesjan 2002dic 2011,并填充这些列与我的data frames即使一列没有价值。上data.frames的例子(可以有以 “离散的” 日期):按行添加数据框

DF1:

ene 2002 ene 2002 feb 2002 feb 2002 mar 2002 mar 2002 
    69  MA  38  MA  38  MA 

DF2:

ago 2004 ago 2004 sep 2004 sep 2004 oct 2004 oct 2004 
    114  MB  102  MB  49  M 

DF3:

oct 2011 oct 2011 nov 2011 nov 2011 dic 2011 dic 2011 
10  A  9  A   20  MA 

DF4(”离散数据帧“):

jan 2008 jan 2008 jul 2009 jul 2009 dic 2010 dic 2010 
20   MA  200  B  100  MB 

Data.frame希望(愿望输出):

ene 2002 ene 2002 feb 2002 feb 2002 mar 2002 mar 2002...ago 2004 ago 2004 sep 2004 sep 2004 oct 2004 oct 2004...jan 2008 jan 2008...jul 2009 jul 2009...dic 2010 dic 2010... oct 2011 oct 2011 nov 2011 nov 2011 dic 2011 dic 2011 
    69  MA  38  MA  38  MA   NA  NA  NA  NA  NA  NA  NA  NA   NA  NA   NA  NA   NA  NA  NA  NA  NA  NA        
    NA  NA  NA  NA  NA  NA   114  MB  102  MB  49  M   NA  NA   NA  NA   NA  NA   NA  NA  NA  NA  NA  NA 
    NA  NA  NA  NA  NA  NA   NA  NA  NA  NA  NA  NA  NA  NA   NA  NA   NA  NA   10  A  9  A  20  MA 
    NA  NA  NA  NA  NA  NA   NA  NA  NA  NA  NA  NA  20  MA   200  B   100  MB   NA  NA  NA  NA  NA  NA 

在这个例子中没有价值的所有其它列将NA:例如烯2003 2003年2月..... 2005年11月2005年DIC ... ......所有月份2006年或2007年(随便说随便一个月是不是在这个例子中,但我希望他们出现在我的输出)

回答

1

使用plyrrbind.fill

rbind.fill(list(df1,df2,df3,df4)) 

无te:重复的列名(例如:feb 2002)将更改为feb 2002.1

编辑:这是我得到:

# ene2002 ene2002.1 feb2002 feb2002.1 mar2002 mar2002.1 ago2004 ago2004.1 sep2004 
# 1  69  MA  38  MA  38  MA  NA  <NA>  NA 
# 2  NA  <NA>  NA  <NA>  NA  <NA>  114  MB  102 
# 3  NA  <NA>  NA  <NA>  NA  <NA>  NA  <NA>  NA 
# 4  NA  <NA>  NA  <NA>  NA  <NA>  NA  <NA>  NA 
# sep2004.1 oct2004 oct2004.1 oct2011 oct2011.1 nov2011 nov2011.1 dic2011 dic2011.1 
# 1  <NA>  NA  <NA>  NA  <NA>  NA  <NA>  NA  <NA> 
# 2  MB  49   M  NA  <NA>  NA  <NA>  NA  <NA> 
# 3  <NA>  NA  <NA>  10   A  9   A  20  MA 
# 4  <NA>  NA  <NA>  NA  <NA>  NA  <NA>  NA  <NA> 
# jan2008 jan2008.1 jul2009 jul2009.1 dic2010 dic2010.1 
# 1  NA  <NA>  NA  <NA>  NA  <NA> 
# 2  NA  <NA>  NA  <NA>  NA  <NA> 
# 3  NA  <NA>  NA  <NA>  NA  <NA> 
# 4  20  MA  200   B  100  MB 
+0

这就是我想要的,但相反像你说的,重复的列名都消失了!我不知道为什么......输出只是抛出了第一个重复的日期.....可能是错误的? – 2013-03-15 00:53:51

+0

@TomásAyala,我粘贴了我得到的输出。我也有重复的列。不太清楚你在说什么......你能详细说明一下吗? – Arun 2013-03-15 08:07:16