假设我们有一个向量:
v <- c(0,0,0,1,0,0,0,1,1,1,0,0)
预期输出:
v_index <- c(5,6,7)
v
始终以 0
开始和结束。两个 1
之间只有一种可能存在零簇。
看起来很简单,但我无法理解......
我想这样就可以了
which(cumsum(v == 1L) == 1L)[-1L]
## [1] 5 6 7
这里的想法是将所有“一”的实例分成组并选择第一个组,同时删除开头出现的“一”(因为您只想要零)。
v <- c(0,0,0,1,0,0,0,1,1,1,0,0)
v_index<-seq(which(v!=0)[1]+1,which(v!=0)[2]-1,1)
> v_index
[1] 5 6 7
解释:请问哪些索引不等于0:
which(v!=0)
然后我从该向量中取出第一个和第二个索引,并从中创建一个序列。
我不知道答案是什么。有时候不知道更好。