Hi all R helpers, I'm trying to comeup with nice and elegant way of "detecting" consecutive increases/decreases in the sequence of numbers. I'm trying with combination of which() and diff() functions but unsuccesifuly. For example: sq <- c(1, 2, 3, 4, 4, 4, 5, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1); I'd like to find way to calculate a) maximum consecutive increase = 3 (from 1 to 4) b) maximum consecutive decrease = 5 (from 6 to 1) All ideas are highly welcomed! -- This e-mail and any files transmitted with it are confid...{{dropped:14}}
rle(diff(sq)) could be helpful here, best, Ingmar On May 13, 2008, at 11:19 PM, Marko Milicic wrote:> Hi all R helpers, > > I'm trying to comeup with nice and elegant way of "detecting" > consecutive > increases/decreases in the sequence of numbers. I'm trying with > combination > of which() and diff() functions but unsuccesifuly. > > For example: > > sq <- c(1, 2, 3, 4, 4, 4, 5, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1); > > I'd like to find way to calculate > > a) maximum consecutive increase = 3 (from 1 to 4) > b) maximum consecutive decrease = 5 (from 6 to 1) > > All ideas are highly welcomed! > > > > > > -- > This e-mail and any files transmitted with it are confid... > {{dropped:14}} > > ______________________________________________ > R-help at 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.
Hi Erik, If you look at first 4 numbers, you will se that there was one increase between first and second number (1 and 2), immediatly after that increase, there is an increase between second and third number (2 and 3) and finaly third consecutive increse between third and fourth number (3 and 4). If you follow similar logic, you will identify that from 7th to 8th number sequence decreased (from 6 to 5)...followed by 4 consecutive decreases (until 12th and 13th number - from 2 to 1)... Thanks for your time On Tue, May 13, 2008 at 10:25 PM, Erik Iverson <iverson@biostat.wisc.edu> wrote:> Are you sure you gave us the right 'sq'? I don't understand what you want > if so. > > > How does 1 to 4 come from sq ? > > > Marko Milicic wrote: > > > Hi all R helpers, > > > > I'm trying to comeup with nice and elegant way of "detecting" > > consecutive > > increases/decreases in the sequence of numbers. I'm trying with > > combination > > of which() and diff() functions but unsuccesifuly. > > > > For example: > > > > sq <- c(1, 2, 3, 4, 4, 4, 5, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1); > > > > I'd like to find way to calculate > > > > a) maximum consecutive increase = 3 (from 1 to 4) > > b) maximum consecutive decrease = 5 (from 6 to 1) > > > > All ideas are highly welcomed! > > > > > > > > > > > >-- This e-mail and any files transmitted with it are confid...{{dropped:14}}