如何从向量中提取没有空事件的连续事件数?
我试过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
.
我还需要每个事件序列的位置。
如何从向量中提取没有空事件的连续事件数?
我试过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
.
我还需要每个事件序列的位置。
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