[R] Transforming boolean subsetting into index subsetting

Julio Sergio juliosergio at gmail.com
Fri Jun 28 23:58:04 CEST 2013


One of the techniques to subset, a vector for instance, is the following:

  V <- c(18, 8, 5, 41, 8, 7)
  V
  ## [1] 18  8  5 41  8  7
  ( I <- abs(V - 9) <= 3 )
  ## [1] FALSE  TRUE FALSE FALSE  TRUE  TRUE
  V[I]
  ## [1] 8 8 7

However, sometimes we are interested in the indexes of the elements where the 
condition holds. Is there an easy way to transform the I vector into an 
indexes vector similar to:  I == c(2,5,6) ?

I know that I can traverse the I vector with a for() loop collecting the 
indexes, I just wonder if such an operation can be avoided.

Thanks,

  -Sergio.



More information about the R-help mailing list