Skip to content

Search for longest consecutive occurrence

5 messages · tsunhin wong, Gabor Grothendieck

#
Dear R Users,

I am trying to write a script to count the longest consecutive
occurring 1 in a sequence:
test<-c(1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,1)

In the case of the object "test", 1 occurs 7 consecutive times which
is the longest consecutive within the sequence.
I know I can always do a thorough from start to end search and use a
counter to count.
But, do you know there can be a smarter way to achieve this in R?

Thanks a lot!

- John
#
Try this:

with(rle(test), max(lengths[!!values]))
On Sat, May 23, 2009 at 1:09 PM, tsunhin wong <thjwong at gmail.com> wrote:
#
Thanks!
I tested it using:
test<-c(1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,1)
that has a longer 7 zeros and 5 ones.

What part of the script does the selection of ones instead of zeros?

- John

On Sat, May 23, 2009 at 1:17 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
#
!!
On Sat, May 23, 2009 at 1:52 PM, tsunhin wong <thjwong at gmail.com> wrote:
#
Thanks for introducing me to "with" and the smart use of R subscripting
Now I know I can do something like this.

test<-c(1,1,1,1,1,0,0,0,0,0,2,2,2,2,2,2,0,1,0,1,1,0,0,0,0,0,0,0)
[1] 6
[1] 5
[1] 7

Many thanks!

- John


On Sat, May 23, 2009 at 1:54 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote: