[BioC] Combine two data frames with different columns
lgautier at altern.org
lgautier at altern.org
Fri Feb 1 21:51:31 CET 2008
> On Feb 1, 2008 7:28 AM, Daniel Brewer <daniel.brewer at icr.ac.uk> wrote:
>> I would like to join two dataframes that have the majority of columns in
>> common but some different. Let me give you an example:
>>
>> Dataframe 1
>>
>> ID COL1 COL2 COL3
>> 1 a a a
>> 2 b b b
>> 3 c c c
>>
>> Dataframe 2
>>
>> ID COL1 COL2 COL4
>> 4 a a d
>> 5 b b d
>>
>> And the joined dataframe I would like is:
>>
>> ID COL1 COL2 COL3 COL4
>> 1 a a a NA
>> 2 b b b NA
>> 3 c c c NA
>> 4 a a NA d
>> 5 b b NA d
>>
>> Any ideas?
>
> One solution is in the CRAN package reshape:
>
> df1 <- data.frame(matrix(letters[1:16],nc=4))
> df2 <- data.frame(matrix(letters[1:16],nc=4))
> colnames(df1) <- 1:4
> colnames(df2) <- 2:5
> rbind.fill(df1,df2)
>
> 1 2 3 4 5
> 1 a e i m <NA>
> 2 b f j n <NA>
> 3 c g k o <NA>
> 4 d h l p <NA>
> 5 <NA> a e i m
> 6 <NA> b f j n
> 7 <NA> c g k o
> 8 <NA> d h l p
>
> There are certainly other answers, but I find the reshape package to
> be a useful one anyway.
An alternative is:
merge(df1, df2, all=TRUE)
More information about the Bioconductor
mailing list