[R] find jumps in vector of repeats

William Dunlap wdunlap at tibco.com
Sat Oct 19 02:29:11 CEST 2013


> I have a very long vector (length=1855190) it looks something like this
> 
> 1111...2222...3333....etc so it would be something equivalent of doing:
> rep(c(1,2,3,4,5), c(10,30,24,65,3))
> 
> How can I find the index of where the step/jump is? For example using the above I would
> get an index of 0, 10, 40, 64, 129

Define 2 functions:
     isFirstInRun <- function(x) c(TRUE, x[-1]!=x[-length(x)])
     isLastInRun <- function(x) c(x[-1]!=x[-length(x)], TRUE)
and use them as
     > z <- rep(c(1,2,3,4,5), c(10,30,24,65,3))
     > which(isLastInRun(z))
     [1]  10  40  64 129 132
     > which(isFirstInRun(z))
     [1]   1  11  41  65 130
(0 is not a valid R index into a vector, so I prefer one of
the above results, but you can fiddle with the endpoints
as you wish.)

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Benton, Paul
> Sent: Friday, October 18, 2013 5:18 PM
> To: r-help at r-project.org
> Subject: [R] find jumps in vector of repeats
> 
> Hello all,
> 
> I'm not really sure how to search for this in google/Rseek so there is probably a
> command to do it. I also know I could write an apply loop to find it but thought I would
> ask all you lovely R gurus.
> 
> I have a very long vector (length=1855190) it looks something like this
> 
> 1111...2222...3333....etc so it would be something equivalent of doing:
> rep(c(1,2,3,4,5), c(10,30,24,65,3))
> 
> How can I find the index of where the step/jump is? For example using the above I would
> get an index of 0, 10, 40, 64, 129
> 
> Any help would be greatly appreciated.
> 
> Cheers,
> 
> Paul
> ______________________________________________
> 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