[R] Finding where a string drops below a certain value

Williams,Caroline carolinewilliams at ufl.edu
Sat Mar 9 13:53:43 CET 2013


Dear R-helpers, 
I am stuck on a problem, and hope someone can help. I am trying to find the time point in a time series where the values drop below a baseline threshold, defined by the mean +/- standard deviation calculated on the last 6 time points of the series. Here is a simplified example:

time <- c(1:12)
x <- c(5.00,4.00,3.00,1.20,1.05,1.20,1.00,-1.00,1.00,-1.00,1.00,-1.00)

min.range <- mean(x[7:12])-sd(x[7:12])
max.range <- mean(x[7:12])+sd(x[7:12])

flag <- ifelse(x[1:6] > max.range | x[1:6] < min.range, 1,0)

I need to pull out two pieces of information:
1) the index for the first time point at which the values return to within one s.d. of the mean of the last 6 values (i.e. the first "0" in the flag list above, returning a time value of 5): this should return the first time point if it is within  one s.d. of the mean.
2) the number of time points that occur before values return to that range (i.e. the last "1" before the first "0" in the flagged list, returning a value of 4 in this example): I do not want to count any values that go outside the range after the first value within the range, in this case the final "1" in the flagged list). This should return 0 is the first time point is within one s.d of the mean. The time points will not be spaced in increments of 1 as in this example, so I cannot just subtract one from the value in 1, although subtracting 1 from the index point should work. 

I hope this is clear, let me know if I have missed any important information. Thank you for your time, any help much appreciated. 
Caroline Williams

__________________________________________________

Caroline Williams, PhD
Postdoctoral Associate, Hahn lab
Department of Entomology and Nematology
University of Florida
Gainesville, FL

Cell: (352) 262-2908      Office: (352) 273-3949 
Email: carolinewilliams at ufl.edu       Website: plaza.ufl.edu/carolinewilliams



More information about the R-help mailing list