[R] How to find series of small numbers in a big vector?

From: Ed Holdgate <edholdgate_at_yahoo.com>
Date: Tue 30 Jan 2007 - 01:49:28 GMT

Hello:

I have a vector with 120,000 reals
between 0.00000 and 0.9999

They are not sorted but the vector index is the time-order of my measurements, and therefore cannot be lost.

How do I use R to find the starting and ending index of ANY and ALL the "series" or "sequences" in that vector where ever there are 5 or more members in a row between 0.021 and 0.029 ?

For example:

search_range <- c (0.021, 0.029) # inclusive searching search_length <- 5 # find ALL series of 5 members within search_range

my_data <- c(0.900, 0.900, 0.900, 0.900, 0.900,
             0.900, 0.900, 0.900, 0.900, 0.900,
             0.900, 0.028, 0.024, 0.027, 0.023,
             0.022, 0.900, 0.900, 0.900, 0.900,
             0.900, 0.900, 0.024, 0.029, 0.023,
             0.025, 0.026, 0.900, 0.900, 0.900,
             0.900, 0.900, 0.900, 0.900, 0.900,
             0.900, 0.900, 0.900, 0.900, 0.022,
             0.023, 0.025, 0.333, 0.027, 0.028,
             0.900, 0.900, 0.900, 0.900, 0.900)

I seek the R program to report:
start_index of 12 and an end_index of 16 -- and also --
start_index of 23 and an end_index of 27 because that is were there happens to be search_length numbers within my search_range.

It should _not_ report the series at start_index 40 because that 0.333 in there violates the search_range.

I could brute-force hard-code an R program, but perhaps an expert can give me a tip for an easy, elegant existing function or a tactic to approach?

Execution speed or algorithm performance is not, for me in this case, important. Rather, I seek an easy R solution to find the time windows (starting & ending indicies) where 5 or more small numbers in my search_range were measured all in a row.

Advice welcome and many thanks in advance.

Ed Holdgate



R-help@stat.math.ethz.ch 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. Received on Tue Jan 30 21:56:58 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 30 Jan 2007 - 13:30:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.