From: Jonne Zutt <j.zutt_at_tudelft.nl>

Date: Tue 30 Jan 2007 - 11:53:49 GMT

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 22:59:25 2007

Date: Tue 30 Jan 2007 - 11:53:49 GMT

I suggest the following appraoch

This gives TRUE for all data within the search_range

A1 = my_data > search_range[1] & my_data < search_range[2]

and diff() the gaps between those intervals

Hence, if A3 > search_length, we have enough consecutive numbers within the search range

Finally, this is what you wanted to know?

A2[ which(A3 > search_length) ]

On Mon, 2007-01-29 at 17:49 -0800, Ed Holdgate wrote:

> 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.
*

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 22:59:25 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.
*