[R] concise syntax for selecting multiple rows

Marc Schwartz marc_schwartz at me.com
Mon Apr 26 17:15:30 CEST 2010


On Apr 26, 2010, at 10:12 AM, John Sorkin wrote:

> I would like to select rows if a row contains any one of several values. I can do the selection as follows:
> 
> result[,"Subject"]=="JEFF" | result[,"Subject"]=="BG"
> 
> But this is very unwieldily if one wishes to select many, many rows as one has to continuously repeat the source:
> 
> result[,"Subject"]=="JEFF" | result[,"Subject"]=="BG" | result[,"Subject"]=="John"  |  result[,"Subject"]=="Mary"
> 
> Is there an easier way? I tried the following but it did not work:
> 
> 
> result[,"Subject"]==c("JEFF" | "BG" | "John"  | "Mary")
> 
> Thanks,
> John


John,

Try:

  subset(result, Subject %in% c("JEFF", "BG", "John", "Mary"))


See ?subset and ?"%in%"

HTH,

Marc Schwartz



More information about the R-help mailing list