Cecilia Carmo
2009-May-10 21:52 UTC
[R] Select the rows in a dataframe that matches a criteria in another dataframe
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. Could anyone help me with another function? Thank you in advance, Cec?lia Carmo (Portugal)
David Winsemius
2009-May-10 23:54 UTC
[R] Select the rows in a dataframe that matches a criteria in another dataframe
?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