【发布时间】:2018-03-12 22:08:09
【问题描述】:
类似于Finding groups of contiguous numbers in a list 和Find consecutive values in vector in R,不同的是我有一个可能最多为4 的数字序列,即
y=c(4*1:4,24,31,33,39,4*16:20)
> y
[1] 4 8 12 16 24 31 33 39 64 68 72 76 80
并且我想要一个函数来返回每个值序列,这些值最多被 4 分隔,所以我得到:
4 8 12 16 # all sep by at most 4
31 33 # all sep by at most 4
64 68 72 76 80 # all sep by at most 4
我试过了:
st=c(1,which(diff(y)<5)+1)
en=c(st-1,length(y))
y[st]
[1] 4 8 12 16 33 68 72 76 80
y[en]
[1] 4 8 12 31 64 68 72 76 80
无济于事。
我确信我遗漏了一些明显的东西,如果有任何提示,我将不胜感激。
【问题讨论】: