假设我有序列:
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/