r - 如何识别每个整数序列而不考虑向量中的关系

标签 r vector sequence

这个问题与此identify whenever values repeat in r相关

在寻找答案时出现了这个新问题:

我有这个向量:

vector <- c(1, 1, 2, 3, 5, 6, 6, 7, 1, 1, 1, 1, 2, 3, 3)

我想识别每个连续的(按1)整数序列,例如1,2,3,.. 或 3,4,5,.. 或 4,5,6,7,...

但是 它应该允许关系 1,1,2,3,.. 或 3,3,4,5,... 或 4,5,5,6,6,7

预期的输出将是一个如下列表:

sequence1 <- c(1, 1, 2, 3)
sequence2 <- c(5, 6, 6, 7)
sequence3 <- c(1, 1, 1, 1, 2, 3, 3)

到目前为止我在这里找到的最接近的方法 Check whether vector in R is sequential? ,但无法将其转移到我想要的位置。

最佳答案

一个选项是 diffcumsum

split(vector, cumsum(c(TRUE, abs(diff(vector)) > 1)))

-输出

`1`
[1] 1 1 2 3

$`2`
[1] 5 6 6 7

$`3`
[1] 1 1 1 1 2 3 3

关于r - 如何识别每个整数序列而不考虑向量中的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71973948/

相关文章:

r - 删除(或否定选择)由 dplyr 中的字符串向量表示的多个变量

performance - 按名称添加矢量元素的快速函数

clojure - 在迭代序列时特殊处理最后一个元素

python,通过坐标从DAS获取序列

c++ - 定义函数后 main 出错? "undefined reference to ' 序列::序列()'"

r - 在 R 中将多行粘贴在一起

r - Shiny 的实时 url 数据不更新

c++ - 多维 vector 指针

c++ - 排序通过引用传递的二维 vector

r - 在 R sf 的分组列上创建新几何