【问题标题】:How to Count the Number of non-NA's between NA in Vector R如何计算向量 R 中 NA 之间的非 NA 数
【发布时间】:2013-12-23 02:30:21
【问题描述】:

您有以下混合了 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

如何做到这一点?

【问题讨论】:

    标签: r vector na


    【解决方案1】:

    is.na 的输出上使用rle 来得到你想要的:

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

    【讨论】:

    • 很好的答案,速度如此之快!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多