R和动物园:移动平均线数据不稳定?

时间:2016-12-28 18:01:35

标签: r zoo moving-average ragged

我想计算移动平均线,用已知的条目3,5和1填充NA条目。如何使用R中的包动物园完成此操作?

输入

> library(zoo)
> hh <- c(NA, NA, NA, 3, NA, 5, NA, 1, NA, NA, NA, NA)

失败

  

使用rollmean失败

    > rollmean(hh,na.omit=TRUE,k=1)
     [1] NA NA NA NA NA NA NA NA NA NA NA NA
    > rollmean(hh,4, na.omit=TRUE,k=1)
     [1] NA NA NA NA NA NA NA NA NA NA NA NA
    > rollmean(hh,4, na.rm=TRUE,k=1)
     [1] NA NA NA NA NA NA NA NA NA NA NA NA
     

使用Rollapply失败

    > rollapply(hh, 4, function(x) mean(x))
    [1] NA NA NA NA NA NA NA NA NA

预期输出类似

    > COMMAND(hh, movingAverageNumber, function(x) mean(x))
    [1] 3 3.3 3.4 3 4 5 3 1 2 1.5 1.2 1 0.8

相关

  1. Using rollmean when there are missing values (NA)

2 个答案:

答案 0 :(得分:1)

根据您正在寻找的内容,如何:

   rollapply(hh, 5, mean, na.rm = TRUE)
   [1] 3 4 4 3 3 3 1 1

   rollapply(hh, 4, mean, na.rm = TRUE)
   [1]   3   3   4   4   3   3   1   1 NaN

答案 1 :(得分:0)

假设您希望滚动mean四个值(将k=1传递给rollmean),则需要告诉mean删除NA < / p>

library(zoo)
rollapply(hh, 4, function(x) mean(x, na.rm=TRUE))

[1]   3   3   4   4   3   3   1   1 NaN

虽然这会返回与所需输出不同的内容。如果你想要不同的东西,你需要进一步解释。