移動平均を超えて、R の時系列で任意のタイプの「移動統計」を計算したいと考えています。たとえば、長さ 3 の時間枠で移動標準偏差を計算するにはどうすればよいでしょうか。
私は次のことを試しました:
#example data
x <- c(3,9,2,8,4,6,5,8)
#moving standard deviation over a time window of length 3
msd3 <- (cumsum(x^2)-cumsum(Lag(x^2,3)))/((1:length(x))-(Lag(1:length(x),3)))-((cumsum(x)-cumsum(Lag(x,3)))/((1:length(x))-(Lag(1:length(x),3))))^2
しかし、それが機能しないだけでなく (遅れたベクトルの累積がすべての NA のベクトルを与えるため)、不必要に複雑に思えるため、最後の問題を解決しようとするのをやめました。その問題に対するエレガントな解決策はありますか?