如何识别每个整数序列而不考虑向量中的关系
How to identify each integer sequence regardless of ties in a vector
这个问题与
相关
在寻找答案时出现了这个新问题:
我有这个向量:
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,...
但是
它应该允许 ties 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?,但无法将其转换为我想要的。
一个选项是 diff
和 cumsum
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
这个问题与
在寻找答案时出现了这个新问题:
我有这个向量:
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,...
但是 它应该允许 ties 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?,但无法将其转换为我想要的。
一个选项是 diff
和 cumsum
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