2013-12-23 72 views
0

您有以下具有NA混入的向量。沒有連續的NA,向量的長度未知。總是有相同數量的NA。如何計算向量R中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 

如何才能做到這一點?

回答

3

使用rle上的is.na輸出得到你想要的東西:

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

偉大的答案,這麼快!謝謝 – CCurtis