[R] Search for longest consecutive occurrence

tsunhin wong thjwong at gmail.com
Sat May 23 20:01:02 CEST 2009


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)
> with(rle(test), max(lengths[values==2]))
[1] 6
> with(rle(test), max(lengths[values==1]))
[1] 5
> with(rle(test), max(lengths[values==0]))
[1] 7

Many thanks!

- John


On Sat, May 23, 2009 at 1:54 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!
>> 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:
>>> Try this:
>>>
>>> with(rle(test), max(lengths[!!values]))
>>>
>>>
>>> On Sat, May 23, 2009 at 1:09 PM, tsunhin wong <thjwong at gmail.com> wrote:
>>>> 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
>>>>
>>>> ______________________________________________
>>>> 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.
>>>>
>>>
>>
>




More information about the R-help mailing list