2

いくつかの時系列データの移動平均 (ma) を計算したいのですが、系列の右端から始まる次数 n を考慮して、最後の ma 値が最後の n 値の ma に対応するようにしたいと思います。シリーズ。目的の関数rightmost_maは、次の出力を生成します。

data <- seq(1,10)
> data
[1]  1  2  3  4  5  6  7  8  9 10

rightmost_ma(data, n=2)
NA 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 

パッケージ予測など、さまざまな可能性を検討していましたが、このユース ケースをカバーする方法が見つかりませんでした。私にとって重要な要件は、シリーズの最後の要素に対して有効な非 NA ma 値を持つことです。つまり、ma が「未来を見る」ことなく有効な結果を生成することを望んでいます。

4

2 に答える 2

1

stats::filter使用はそれほど複雑ではなく、パフォーマンスが向上する可能性があると思います(zooよく書かれていますが)。

これ:

filter(1:10, c(1,1)/2, sides=1)

与えます:

Time Series:
Start = 1
End = 10
Frequency = 1
[1]  NA 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5

ts結果をオブジェクトにしたくない場合は、結果に対して使用as.vectorします。

于 2013-08-26T22:05:42.957 に答える