Re: [R] Retain only those records from a dataframe that exist in another dataframe

From: Marc Schwartz (via MN) <>
Date: Tue 08 Aug 2006 - 06:17:27 EST

On Mon, 2006-08-07 at 14:05 -0600, Mark Na wrote:
> Dear R community,
> I have two dataframes "first" and "second" which share a unique identifier.
> I wish to make a new dataframe "third" retaining only the rows in
> "first" which also occur in "second".
> I have tried using merge but can't seem to figure it out. Any ideas?
> Thanks!
> Mark

Do you want to actually join (merge) matching rows from 'first' and 'second' into 'third', or just get a subset of the rows from 'first' where there is a matching UniqueID in 'second'?

In the first case:

  third <- merge(first, second, by = "UniqueID")

Note that the UniqueID column is quoted.

In the second case:

  third <- subset(first, UniqueID %in% second$UniqueID)

See ?merge, ?"%in%" and ?subset

HTH, Marc Schwartz mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Tue Aug 08 11:39:04 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 08 Aug 2006 - 12:21:01 EST.

Mailing list information is available at Please read the posting guide before posting to the list.