Create index for contiguous runs of values

r, sequence

Solution

Use run length encoding (`rle`), `seq_along` and `rep`

r <- rle(test)

changes <- rep(seq_along(r$lengths), r$lengths)
changes
## [1] 1 1 2 3 3 4 5 6 6 7

Problem

I have a vector: ``` test <-c(1,1,0,2,2,3,4,1,1,0) test # [1] 1 1 0 2 2 3 4 1 1 0 ``` I want to construct an grouping variable which indicates when values change: ``` # [1] 1 1 2 3 3 4 5 6 6 7 ``` What is the best way to do this?

Original source