0

df(A)14列と1356行のデータフレームがあります。移動平均のように、12 行ごとに合計を適用するために、この関数があります。

rollapply(A,width=12, FUN= sum,by.column=T) 

しかし、12 行ごとに、 の乗算を適用する必要がありますexp(n/12)。ここで、n は 0 から 11 までの数値です。合成では、結果は次のようになります。

rollapply(A,FUN=1°row *exp(0/12)+2°row*exp(2/12)....+12°row*exp(11/12),by.column=T) 

論理的には 12 行ごとに操作が繰り返されます。これを関数で適用することは可能ですかrollapply、それともループを書く必要がありますforか?

4

1 に答える 1

1

関数を更新するだけです。

n = 12
rollapply(A, width=n, FUN=function(x) sum(x*exp((seq(n)-1)/n)))
于 2016-01-19T10:31:22.853 に答える