R - ave rollapply错误:k <= n不为TRUE

Ada*_*dam 5 r rollapply

我正在尝试计算在R中按多个维度分组的滚动均值.我将通过以下方式在SQL中执行的操作:

AVG(value) OVER 
   (PARTITION BY dim1, dim2 ORDER BY date 
       RANGE BETWEEN 5 PRECEDING AND CURRENT ROW)
Run Code Online (Sandbox Code Playgroud)

如果我只选择几个维度,以下似乎可行:

s <- ave(df$value, 
     list(df$dim1, df$dim2), 
     FUN= function(x) rollapply(x, 5, mean, align='right'))
Run Code Online (Sandbox Code Playgroud)

但是当我选择完整的维度集时会出现以下错误:

Error: k <= n is not TRUE 
Run Code Online (Sandbox Code Playgroud)

我跑的时候遇到同样的错误:

rollapply(c(1:2), 3, mean, align='right')
Run Code Online (Sandbox Code Playgroud)

所以我想问题是一些尺寸组合没有足够的值来计算平均值.

我怎么能克服它?我很好,因为这些组合有一个NA.任何帮助将非常感激..

Jak*_*her 3

roll_meanr默认情况下,RcppRoll包中将执行此操作:

library(RcppRoll)
> roll_meanr(c(1:2), 3)
# [1] NA NA
Run Code Online (Sandbox Code Playgroud)