[R] counting repeating sequence lengths in a vector
Henrique Dallazuanna
wwwhsd at gmail.com
Mon Feb 22 18:32:20 CET 2010
Try this:
rle(x)$length
On Mon, Feb 22, 2010 at 2:27 PM, Larson, TR <trl1 at york.ac.uk> wrote:
> Hello,
> I have a very long (~50,000) sequence of repeating numbers. The first 100
> are:
>
> [1] 0 0 0 0 0 0 0 0 0 0 0 429
> [13] 429 429 429 429 429 429 429 858 858 858 858 858
> [25] 858 1287 1287 1287 1287 1287 1716 2145 2145 2574 2574
> 3003
> [37] 3003 3432 3432 3861 4290 4719 5148 5577 5577 6006 6006
> 6006
> [49] 6435 6435 6435 6864 6864 7293 7293 7293 7722 7722 7722
> 7722
> [61] 8151 8151 8151 8580 8580 8580 9009 9009 9009 9009 9438
> 9438
> [73] 9438 9438 9867 9867 9867 10296 10296 10296 10725 10725 10725
> 10725
> [85] 11154 11154 11154 11154 11154 11583 11583 11583 11583 12012 12012
> 12012
> [97] 12012 12441 12441 12441
>
>
> What I want is to produce a vector of lengths for each contiguous run of
> numbers . i.e. for the above example, the first three items of the vector
> returned would be:
>
> 11 8 6
>
> ...to represent the counts of 0, 429, and 585, respectively. I could do
> this with unique() and a for loop, but this would be very inefficient. Any
> advice on how to do this efficiently would be most appreciated.
>
> thanks
> Tony
>
> ______________________________________________
> 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.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
More information about the R-help
mailing list