用 rle 运行长度编码

行程编码捕获向量中连续元素的运行长度。考虑一个示例向量:

dat <- c(1, 2, 2, 2, 3, 1, 4, 4, 1, 1)

rle 函数提取每次运行及其长度:

r <- rle(dat)
r
# Run Length Encoding
#   lengths: int [1:6] 1 3 1 1 2 2
#   values : num [1:6] 1 2 3 1 4 1

每次运行的值都在 r$values 中捕获:

r$values
# [1] 1 2 3 1 4 1

这捕获了我们第一次看到 1 的运行,然后是 2 的运行,然后运行 3 的运行,然后运行 1 的运行,依此类推。

每次运行的长度都在 r$lengths 中捕获:

r$lengths
# [1] 1 3 1 1 2 2

我们看到 1 的初始运行长度为 1,随后的 2 的运行长度为 3,依此类推。