[R] Merge two data frames and find common values and non-matching values

William Dunlap wdunlap at tibco.com
Mon Oct 3 21:25:35 CEST 2011


Start out with merge():
  > df <- merge(df1, df2, all.x=TRUE) # could add by="location" for emphasis
  > df
    location      Name Position Country
  1       36  cristina        B    <NA>
  2       75 francesca        A      UK
You could make make your 'Match' column from is.na(df$Country) if you 
knew that df2$Country were never NA.  Otherwise you can add a fake
variable to the merge to tell which output rows come from unmatched
rows in the first data.frame:

  > df12 <- merge(df1, cbind(df2, fromDF2=TRUE), all.x=TRUE, by="location")
  > df12$Match <- !is.na(df12$fromDF2)
  > df12
    location      Name Position Country fromDF2 Match
  1       36  cristina        B    <NA>      NA FALSE
  2       75 francesca        A      UK    TRUE  TRUE

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of francy
> Sent: Monday, October 03, 2011 10:55 AM
> To: r-help at r-project.org
> Subject: [R] Merge two data frames and find common values and non-matching values
> 
> Hi,
> 
> I am trying to find a function to match two data frames of different lengths
> for one field only.
> So, for example,
> df1 is:
> 
> Name Position location
> francesca A 75
> cristina B 36
> 
> And df2 is:
> 
> location Country
> 75 UK
> 56 Austria
> 
> And I would like to match on "Location" and the output to be something like:
> 
> Name Position Location Match
> francesca A 75 1
> cristina B 36 0
> 
> I have tried with the function 'match' or with:
> subset(df1, location %in% df2)
> But it does not work.
> 
> Could you please help me figure out how to do this?
> 
> Thank you!
> -f
> 
> 
> --
> View this message in context: http://r.789695.n4.nabble.com/Merge-two-data-frames-and-find-common-
> values-and-non-matching-values-tp3868299p3868299.html
> Sent from the R help mailing list archive at Nabble.com.
> 	[[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