您具有混合了NA的以下向量。没有连续的NA,并且向量的长度未知。总是有相同数量的NA。
#Data
testvector <- c(NA,rnorm(round(abs(rnorm(1))*10)),NA,rnorm(round(abs(rnorm(1))*10)),NA,rnorm(round(abs(rnorm(1))*10)),NA,rnorm(round(abs(rnorm(1))*10)),NA,rnorm(round(abs(rnorm(1))*10)))
您需要找到每个NA之后存在的非NA值的数量。这需要作为向量返回。此向量的长度将等于NA的数量。
对于此向量。
thisvector <- c(NA,rnorm(4),NA,rnorm(5),NA,rnorm(9),NA,rnorm(2),NA,rnorm(6))
你想要的是
somefunction(thisvector)
[1] 4 5 9 2 6
如何才能做到这一点?
使用rle
上的输出is.na
,以获得想要的东西:
x <- rle(is.na(testvector))
x$lengths[!x$values]
## [1] 1 2 5 9 4
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句