【发布时间】:2015-06-06 16:54:41
【问题描述】:
假设我们有一个向量:
v <- c(0,0,0,1,0,0,0,1,1,1,0,0)
预期输出:
v_index <- c(5,6,7)
v 始终以 0 开头和结尾。在两个1s 之间只有一种可能的零簇。
看起来很简单,我无法理解......
【问题讨论】:
标签: r
假设我们有一个向量:
v <- c(0,0,0,1,0,0,0,1,1,1,0,0)
预期输出:
v_index <- c(5,6,7)
v 始终以 0 开头和结尾。在两个1s 之间只有一种可能的零簇。
看起来很简单,我无法理解......
【问题讨论】:
标签: r
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)
然后我从该向量中获取第一个和第二个索引并从中创建一个序列。
【讨论】:
这可能是最简单的答案之一。找出哪些项目等于一个,然后使用前两个索引生成一个序列,第一个递增,另一个递减。
block <- which(v == 1)
start <- block[1] + 1
end <- block[2] - 1
v_index <- start:end
v_index
[1] 5 6 7
【讨论】: