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
Post a Comment