你有以下向量,其中混入了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
如何做到这一点?
答案 0 :(得分:3)
在rle
的输出上使用is.na
来获得您想要的内容:
x <- rle(is.na(testvector))
x$lengths[!x$values]
## [1] 1 2 5 9 4