【问题标题】:Filling NA values with repetition of the leftmost non-NA value in zoo用重复动物园中最左边的非NA值填充NA值
【发布时间】:2013-05-15 08:29:55
【问题描述】:

如何通过重复zoo中最左边的非NA值来填充NA值?

在 zoo pdf 指南中,我们有执行此任务的函数 na.fill。我的问题是如何说函数取最左边的非 NA 值?

下面是一个小例子

> z <- zoo(c(NA, 2, NA, 1, 4, 5, 2, NA))
> z
 1  2  3  4  5  6  7  8 
NA  2 NA  1  4  5  2 NA 
> na.fill(z, "extend")
  1   2   3   4   5   6   7   8 
2.0 2.0 1.5 1.0 4.0 5.0 2.0 2.0 
> na.fill(z, c("extend", NA))
 1  2  3  4  5  6  7  8 
 2  2 NA  1  4  5  2  2 

我想要的结果如下:

 1  2  3  4  5  6  7  8 
 NA  2 2  1  4  5  2  2 

【问题讨论】:

    标签: r null zoo


    【解决方案1】:
    library(zoo)
    z <- zoo(c(NA, 2, NA, 1, 4, 5, 2, NA))
    na.locf(z, na.rm = FALSE)
    # 1  2  3  4  5  6  7  8 
    #NA  2  2  1  4  5  2  2 
    

    【讨论】:

    • FWIW,如果您没有 zoo 对象,您可以使用 rle(is.na(myvector)) 之类的技巧并处理生成的信息。
    • @CarlWitthoft:您可以在普通向量上使用na.locf。 zoo 提供了一个na.locf.default 方法。
    • @JoshuaUlrich 感谢您提供信息。我需要了解更多关于zoo 的信息。
    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 2021-08-03
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    相关资源
    最近更新 更多