如何计算Vector R中NA之间的非NA数

时间:2013-12-23 02:30:21

标签: r vector na

你有以下向量,其中混入了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

如何做到这一点?

1 个答案:

答案 0 :(得分:3)

rle的输出上使用is.na来获得您想要的内容:

x <- rle(is.na(testvector))
x$lengths[!x$values]
## [1] 1 2 5 9 4