r - Finding longest repeating element in vector -


i find starting , ending index of consecutive repeating elements equal "1" in following vector. vector has values can equal "1" or na.

for example:

out2  [1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" [21] "1" na  na  na  na  na  "1" "1" "1" "1" "1" "1" na  na  na  na  na  na  na  na 

the output should following

    [,1] [,2] [1,]  1   21 [2,]  27  32 

try rle:

x <- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  1, na, na, na, na, na, 1, 1, 1, 1, 1, 1, na, na, na, na, na,  na, na, na)  with(rle(x), {   ok <- !is.na(values)   ends <- cumsum(lengths)[ok]   starts <- ends - lengths[ok] + 1   cbind(starts, ends) }) 

giving:

     starts ends [1,]      1   21 [2,]     27   32 

Comments

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -