代码之家  ›  专栏  ›  技术社区  ›  xm1

与NA的Rollmear问题

  •  0
  • xm1  · 技术社区  · 6 年前

    作为基地,让:

    library(zoo)
    x1=c(1,2,3,4)
    x2=rollmeanr(x1,2,fill=NA)
    x=cbind(x1,x2)
         x1  x2
    [1,]  1  NA
    [2,]  2 1.5
    [3,]  3 2.5
    [4,]  4 3.5
    

    但是如果有 NA 在基地里, rollmeanr 不再工作:

    x1[1]=NA
    x3=rollmeanr(x1,2,fill=NA)
    cbind(x1,x2,x3)
         x1  x2 x3
    [1,] NA  NA NA
    [2,]  2 1.5 NA
    [3,]  3 2.5 NA
    [4,]  4 3.5 NA
    

    x3[3] 2.5 因为它有两个先例数据。

    1 回复  |  直到 6 年前
        1
  •  2
  •   r2evans    6 年前

    zoo 改变了 rollmean https://cran.r-project.org/web/packages/zoo/NEWS ):

    版本1.8-2中的更改

    • 案例x包含任何NAs(rollmean中基于cumsum的快速解决方案是 不适用于这种情况)。类似于rollsum()和rollmedian()。 (由Jan Gorecki报道)