[R] Adding data.frames together

Tom Blackwell tblackw at umich.edu
Wed Mar 10 01:00:06 CET 2004


John  -

The function  rbind()  operates on pairs of data frames, and
(somewhat arcane and definitely NOT for beginning users)

   do.call("rbind", list(df1, df2, df3, df4, df5)))

will combine any number (in this case 5) of data frames.

As of February 2003, the  do.call()  approach did not deal
gracefully with columns in a data frame which had been
converted to factors (happens by default in  read.table()).
In my own code I had to go through some gyrations to protect
against that.

For futher information on the  do.call()  approach, search
the r-help archives for "do.call" AND "rbind".  In particular,
there was a thread involving jerosenb and rpeng titled
"[R] quotes within quotes" with one email dated Wed, 9 Apr 2003.

-  tom blackwell  -  u michigan medical school  -  ann arbor  -

On Tue, 9 Mar 2004, John Sweval wrote:

> I have a series of data frames that are identical structurally, i.e. -
> made with the same code, but I need to add them together so that they
> become one, longer, data frame, i.e. - each of the slot vectors are
> increased in length by the length of the added data frame vectors.
>
> So if I have df1 with a slot A so that length(df1$A) = 100 and I have
> df2 with a slot A so that length(df2$A)=200 then I need a method to
> create df3 its slot A is the df1$A plus df2$A such that length(df3$A) =
> 300.
>
> It does not appear that if you use data.frame to join two data frames it
> just adds the slots of both sources to the destination data frame and
> that is not what I want.
>
> In my finally solution, I need to do this with multiple data.frames that
> slot-wise are identical, but each slot length is different between data
> frames.
>
> Seems like there should be an easy solution, but I just have not
> stumbled across it in the documentation.
>
> Thanks,
> John C. Sweval
>   Database Architect
>   Illumigen Biosciences, Inc.
>     Email: jsweval at illumigen.com
>     Phone: 206-378-0400
>     Fax: 206-378-0408
>




More information about the R-help mailing list