[R] subsets, %in%

Erik Iverson eriki at ccbr.umn.edu
Fri Nov 5 19:22:33 CET 2010


Well, %in% returns a logical vector...

So

subset(dat, ! ID %in% someID)

Also, from ?subset:

Note
      that ‘subset’ will be evaluated in the data frame, so columns can
      be referred to (by name) as variables in the expression

Thus, you don't need 'dat$ID', bur just 'ID' in the subset argument.

-Erik

MP.Sylvestre at gmail.com wrote:
> Hi,
> 
> I have a question about %in% and subsettin data frames.
> 
> Say I need to keep ID 1,2,4,5, 10 from the data frame dat. I can do:
> 
> dat <- data.frame(ID = 1:10, var = 1:10)
> someID <- c(1,2,4,5,10)
> subset(dat, dat$ID %in% someID)
> 
> Is there a quick way to do the opposite, ie to do a subset that contains  
> all ID but someID? Something like %not in%, which would *remove* lines with  
> ID in someID?
> 
> I am asking because I need this in a more complex example where there are  
> multiple lines with the same ID (data in long format) and I need to remove  
> selected ID.
> 
> thanks,
> 
> MP
> 
> 	[[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