R で複数のディメンションでグループ化された値のローリング平均を計算しようとしています。次の方法で SQL で行うこと:
AVG(value) OVER
(PARTITION BY dim1, dim2 ORDER BY date
RANGE BETWEEN 5 PRECEDING AND CURRENT ROW)
いくつかのディメンションのみを選択すると、次のように機能するようです。
s <- ave(df$value,
list(df$dim1, df$dim2),
FUN= function(x) rollapply(x, 5, mean, align='right'))
ディメンションの完全なセットを選択すると、次のエラーが発生します。
Error: k <= n is not TRUE
実行すると同じエラーが発生します。
rollapply(c(1:2), 3, mean, align='right')
問題は、ディメンションの組み合わせによっては、平均を計算するのに十分な値がないことだと思います。
どうすればそれを克服できますか?これらの組み合わせの結果として NA を取得しても問題ありません。どんな助けでも大歓迎です..