[R] rbind with partially overlapping column names

William Dunlap wdunlap at tibco.com
Mon May 16 06:19:35 CEST 2011


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Jonathan Flowers
> Sent: Sunday, May 15, 2011 5:41 PM
> To: r-help at r-project.org
> Subject: [R] rbind with partially overlapping column names
> 
> Hello,
> 
> I would like to merge two data frames with partially 
> overlapping column
> names with an rbind-like operation.
> 
> For the follow data frames,
> 
> df1 <- data.frame(a=c("A","A"),b=c("B","B"))
> df2 <- data.frame(b=c("b","b"),c=c("c","c"))
> 
> I would like the output frame to be (with NAs where the frames don't
> overlap)
> 
> a      b     c
> A     B     NA
> A     B     NA
> NA   b     c
> NA   b     c
> 
> I am familiar with ?merge and ?rbind, but neither seem to 
> offer a means to
> accomplish this.

What is wrong with merge(all=TRUE,...)?
  > merge(df1,df2,all=TRUE)
    b    a    c
  1 B    A <NA>
  2 B    A <NA>
  3 b <NA>    c
  4 b <NA>    c
Rearrange the columns if that is necessary
  > merge(df1,df2,all=TRUE)[c("a","b","c")]
       a b    c
  1    A B <NA>
  2    A B <NA>
  3 <NA> b    c
  4 <NA> b    c

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 
> 
> Thanks in advance.
> 
> Jonathan
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.
> 



More information about the R-help mailing list