4

如何从向量中提取没有空事件的连续事件数?

我试过rle()了,但它没有给我我想要的东西。

有了这种类型的数据

data=c(NA,NA,seq(1,4,0.5),NA,0,0,NA,NA,NA,NA,runif(10,-5,10),NA)

我希望能够在没有 NA 的情况下知道不同事件序列的长度。对于这种情况,输出应该是:7, 2 and 10.

我还需要每个事件序列的位置。

4

1 回答 1

4

rle在这里工作:

data=c(NA,NA,seq(1,4,0.5),NA,0,0,NA,NA,NA,NA,runif(10,-5,10),NA)
with(rle(!is.na(data)),lengths[values])
## [1]  7  2 10

你可以得到这样的长度和位置:

with(rle(!is.na(data)),cbind(length=lengths[values],position=cumsum(c(1,lengths))[values]))
##      length position
## [1,]      7        3
## [2,]      2       11
## [3,]     10       17
于 2013-10-18T13:17:33.333 回答