r - 在 R 中按顺序查找起始索引和终止索引

标签 r pattern-matching sequence indices

假设我有序列:

x = c( 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0)

R 中是否有一种优雅的方法来返回每个 1 序列的开始和停止索引?

答案应该是一个 2 列数组,其中 nRows = 1 的序列数:

startIndx = [ 1, 5, 7 ]
stopIndex = [ 2, 5, 9 ]

谢谢。

BSL

最佳答案

假设您的向量由 0 和 1 值组成:

which(diff(c(0L, x)) == 1L)
#[1] 1 5 7
which(diff(c(x, 0L)) == -1L)
#[1] 2 5 9

否则你需要类似 x <- x == 1L 的东西首先。

关于r - 在 R 中按顺序查找起始索引和终止索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29184297/

相关文章:

java - 用实际值替换环境变量占位符?

string - 生成特定格式的唯一字符串的算法

c++ - 如何找到分形序列中的第 N 个数?

r - 合计 : sum not meaningful for factors

r - 使用 mgcv 的 GAM 对比图

r - 如何在 R 中对时间序列进行子集化

ios - Swift中如何保持Dictionary中数据的顺序?

r - 建立一个新的 geom_hurricane

performance - Haskell 模式匹配有多快?

scala - 为什么用模式匹配收集不能缩小特定类别?