Using the data you provided, a combination of slope and height comes 
close:

X <- seq(Y)
high <- Y > 0.6

upslope <- c(FALSE, diff(Y) > 0)
section <- rep(1, length(Y))
section[upslope==TRUE & high==TRUE] <- 2
section[upslope==FALSE & high==TRUE] <- 3
plot(X, Y, col=section)


Or you could base the slope on the a smooth fit of the data rather than Y 
itself:

P <- loess(Y ~ X, degree=2, span=1/10)$fitted

upslope <- c(FALSE, diff(P) > 0)
section <- rep(1, length(Y))
section[upslope==TRUE & high==TRUE] <- 2
section[upslope==FALSE & high==TRUE] <- 3
plot(X, Y, col=section)

Jean



"chuck.01" <charliethebrow...@gmail.com> wrote on 10/26/2012 03:14:29 AM:
> 
> hello, 
> I have some data that looks similar to this (only not as nice as this):
> 
> Y <- c(abs(rnorm(100, 0.10, .1)), seq(.10, 1.0, .3)+rnorm(1, 0, .5) , 
> seq(0.8, 4.0, .31)+rnorm(1, 0, .5)
> , seq(3.9, .20, -.2)+rnorm(1, 0, .5) , abs(rnorm(100, 0.13, .1)) , 
seq(.10,
> 1.2, .35)+rnorm(1, 0, .5)
> , seq(0.7, 6.0, .31)+rnorm(1, 0, .5) , seq(5.9, .23, -.18)+rnorm(1, 0, 
.5) ,
> abs(rnorm(50, 0.18, .1)) )
> 
> plot(Y~c(1:length(Y)))  # it is water level through time
> 
> I am trying to find a way to divide these data into 3 sections , 1) the
> rising limbs, 2) falling limbs, and 3) not #1 or #2. 
> I'll spare you the list of things I've tried, just know that the data is
> generally too noisy to use something as simple as which(diff(Y) > b), 
where
> b is some threshold. 
> Please let me know if you have an idea of how to tackle this. 

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to