如何从矢量中提取没有空事件的连续事件的数量?
我已经尝试了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
。
我还需要每个事件序列的位置。
答案 0 :(得分: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