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
Search for longest consecutive occurrence
5 messages · tsunhin wong, Gabor Grothendieck
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.
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.
!!
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.
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.