【发布时间】:2018-10-23 00:23:00
【问题描述】:
假设我有这个数据:
x = c(14,14, 6, 7 ,14 , 0 ,0 ,0 , 0, 0, 0 , 0 , 0, 0 , 0 , 0 , 0, 9 ,1 , 3 ,8 ,9 ,15, 9 , 8, 13, 8, 4 , 6 , 7 ,10 ,13, 3,
0 , 0 , 0 , 0 , 0 , 0, 0, 0 , 0 , 0 , 0, 0, 0, 0, 0 ,0, 0 , 0 , 0, 0, 0, 0, 0 , 0, 0, 4 , 7 ,4, 5 ,16 , 5 ,5 , 9 , 4 ,4, 9 , 8, 2, 0 ,0 ,0 ,0 ,0, 0, 0, 0 ,0 , 0, 0, 0, 0, 0, 0, 0, 0,0)
x
[1] 14 14 6 7 14 0 0 0 0 0 0 0 0 0 0 0 0 9 1 3 8 9 15 9 8
[26] 13 8 4 6 7 10 13 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[51] 0 0 0 0 0 0 0 0 4 7 4 5 16 5 5 9 4 4 9 8 2 0 0 0 0
[76] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我想恢复从连续超过 3 个零开始并以非零之前的最后一个 0 终止的索引。
例如,
我会得到
6、17 表示第一次出现的零等。
【问题讨论】:
-
根据定义,总会有一个“非零之前的最后一个零”。这些条件应该是什么?
-
零序列中的最后一个零在它再次切换回非零数字之前
-
然后你需要两个数字序列 a) 三个零或更大的起始位置和 b) 它们的结束位置。
标签: r vector sequence difference