[R] Merging data frames of different length

Dimitri Liakhovitski ld7631 at gmail.com
Sat Dec 20 22:44:46 CET 2008


Thanks a lot, Gabor - it's perfect!
Dimitri

On Fri, Dec 19, 2008 at 6:24 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> Try this:
>
>> L <- list(data.frame(A=2, B=3, C=4),
> + data.frame(A=2, B=1, C=3, D=2, E=4, F=5),
> + data.frame(A=1, B=2, C=4, D=3, E=2, F=4, G=5, H=4, I=2))
>
>> library(plyr)
>> do.call(rbind.fill, L)
>  A B C  D  E  F  G  H  I
> 1 2 3 4 NA NA NA NA NA NA
> 2 2 1 3  2  4  5 NA NA NA
> 3 1 2 4  3  2  4  5  4  2
>
>
> On Fri, Dec 19, 2008 at 5:48 PM, Dimitri Liakhovitski <ld7631 at gmail.com> wrote:
>> Hello, everyone!
>>
>> I have list L that contains 99 data frames. All data frames have only
>> one row, but a different number of columns. Some data frames have 3
>> columns, some - 6 columns, and some - 9 columns. The names of the
>> first 3 columns are identical in all 99 data frames (e.g., A, B, and
>> C). The names of columns 4:6 are identical in data frames that contain
>> 6 and 9 columns (e.g., D, E, and F). So that L looks like this:
>>
>> L[[1]]
>> A B C
>> 2 3 4
>> L[[2]]
>> A B C D E F
>> 2 1 3 2 4 5
>> L[[3]]
>> A B C D E F G H I
>> 1 2 4 3 2 4 5 4 2
>> L[[4]]
>> ...
>>
>>
>> How can I merge all of those data frames into one large data frame -
>> with 99 rows - such that all data are in the columns with correct
>> names. Of course, I'd like the rows of the new large data frame that
>> contain the data for less than 9 columns to have NAs in columns 4:9
>> (or 7:9).
>> In other words, I want the first 3 rows of the new large data frame to
>> look like this:
>> A B C D E F G H I
>> 2 3 4 NA NA NA NA NA NA
>> 2 1 3 2 4 5 NA NA NA
>> 1 2 4 3 2 4 5 4 2
>>
>> Ideally, I'd like this merge to work for ANY number of individual
>> small data frames in L - even if their total number within L is
>> unknown.
>>
>> I tried merge - but it seems to me that it only works for 2 data
>> frames, not for many.
>> Thank you very much!
>> --
>> Dimitri Liakhovitski
>> MarketTools, Inc.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>



-- 
Dimitri Liakhovitski
MarketTools, Inc.
Dimitri.Liakhovitski at markettools.com



More information about the R-help mailing list