[R] Select the rows in a dataframe that matches a criteria in another dataframe

David Winsemius dwinsemius at comcast.net
Mon May 11 01:54:46 CEST 2009


?subset
?"%in%"

(I have gotten tired of converting dataframes that are presented in a  
non-executable form, such as is supported by the dput function.   
So, ... you should read those help pages and take the obvious path to  
success.)

Something along the lines of:

subset(df1, Firm %in% df2[df2$Audited==yes, "Firm"] )  #untested

-- 
David Winsemius

On May 10, 2009, at 5:52 PM, Cecilia Carmo wrote:

> Hi everyone! Thank you for the help you have been given to me, and  
> here I'm with another problem with my dataframes:
> I have two dataframes (with much more observations), like these:
> Dataframe1
> Firm         Year      cash
> 500400200    2007     100
> 500400200    2006     200
> 500400200    2005     400
> 500400300    2007     300
> 500400300    2006     240
> 500400300    2005     120
> 500400400    2007     340
> 500400400    2006     890
> 500400400    2005     250
>
> Dataframe 2
> Firm            Audited     consolidate
> 500400200     yes           no
> 500400300     yes          yes
> 500400400     no            no
>
> I want to make another dataframe equal to the dataframe1, but just  
> with the firms «audited», or with the firms «audited» and  
> «consolidate». For example, with the audited and consolidated, the  
> output would be just firm 500400300, like this:
> Firm         Year      cash
> 500400300    2007     300
> 500400300    2006     240
> 500400300    2005     120
>
> I’ve tried intersect () but it gives me just the number of the firm,  
> and it is not what I want. What I want is a dataframe with all the  
> information, but just the firms that match my criteria.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list