Skip to content

Applying function on rolling window basis ** not rollapply() function in zoo

5 messages · Brian G. Peterson, Christofer Bogaso, Gabor Grothendieck

#
On 01/04/2011 07:20 AM, Bogaso Christofer wrote:
?period.apply  # for time series based apply

?apply.rolling # to apply with a fixed (rolling) width

or maybe the 'by' argument of rollapply.

   - Brian
#
On 01/04/2011 07:52 AM, Bogaso Christofer wrote:
<...>
apply.rolling will use a fixed width and *roll* which is what you 
subject says you want.

?period apply

will apply on a endpoints(time)-based period, like days, months, and 
years, using 'periodicity' in xts.  so, quarterly mean, for example, 
would be period.apply with endpoints on quarters or use apply.quarterly. 
  With period.apply, you can also send in a vector of endpoints, which 
can be arbitrary.

So, I think I already gave you all the information you need to do what 
you want.

  - Brian
#
I was trying the example given in apply.rolling() function, however it is
not that what I wanted. Let me simulate it here:
HAM1    HAM2    HAM3    HAM4 HAM5 HAM6 EDHEC LS EQ SP500 TR US
10Y TR US 3m TR
1996-01-31  0.0074      NA  0.0349  0.0222   NA   NA          NA   0.0340
0.00380  0.00456
1996-02-29  0.0193      NA  0.0351  0.0195   NA   NA          NA   0.0093
-0.03532  0.00398
1996-03-31  0.0155      NA  0.0258 -0.0098   NA   NA          NA   0.0096
-0.01057  0.00371
1996-04-30 -0.0091      NA  0.0449  0.0236   NA   NA          NA   0.0147
-0.01739  0.00428
1996-05-31  0.0076      NA  0.0353  0.0028   NA   NA          NA   0.0258
-0.00543  0.00443
1996-06-30 -0.0039      NA -0.0303 -0.0019   NA   NA          NA   0.0038
0.01507  0.00412
1996-07-31 -0.0231      NA -0.0337 -0.0446   NA   NA          NA  -0.0442
-0.00100  0.00454
1996-08-31  0.0395 -0.0001  0.0461  0.0351   NA   NA          NA   0.0211
-0.00448  0.00451
1996-09-30  0.0147  0.1002  0.0653  0.0757   NA   NA          NA   0.0563
0.02229  0.00470
1996-10-31  0.0288  0.0338  0.0395 -0.0180   NA   NA          NA   0.0276
0.02869  0.00428
1996-11-30  0.0156  0.0737  0.0666  0.0458   NA   NA          NA   0.0756
0.02797  0.00427
1996-12-31  0.0176  0.0298  0.0214  0.0439   NA   NA          NA  -0.0198
-0.02094  0.00442
1997-01-31  0.0212  0.0794  0.0771  0.0437   NA   NA      0.0281   0.0625
-0.00055  0.00457
1997-02-28  0.0022 -0.0082 -0.0374  0.0312   NA   NA     -0.0006   0.0078
-0.00167  0.00390
1997-03-31  0.0094 -0.0269 -0.0336  0.0113   NA   NA     -0.0084  -0.0411
-0.01958  0.00422
1997-04-30  0.0126 -0.0061  0.0286  0.0354   NA   NA      0.0084   0.0597
0.01954  0.00477
1997-05-31  0.0438  0.0539  0.0759  0.0789   NA   NA      0.0394   0.0609
0.01033  0.00513
1997-06-30  0.0231  0.0552  0.0054  0.0412   NA   NA      0.0223   0.0448
0.01665  0.00365
1997-07-31  0.0154  0.1150  0.1081  0.0794   NA   NA      0.0454   0.0796
0.04161  0.00450
1997-08-31  0.0237 -0.0197 -0.0028  0.0143   NA   NA      0.0107  -0.0560
-0.02148  0.00428
calcs
1996-01-31           NA
1996-02-29           NA
1996-03-31  0.014066667
1996-04-30  0.008566667
1996-05-31  0.004666667
1996-06-30 -0.001800000
1996-07-31 -0.006466667
1996-08-31  0.004166667
1996-09-30  0.010366667
1996-10-31  0.027666667

What I wanted to have is (0.0074+0.0193+0.0155)/3,
(-0.0091+0.0076+-0.0039)/3 (with window size 3) etc... Do I need to put any
further argument in that function?

Thanks,

-----Original Message-----
From: r-sig-finance-bounces at r-project.org
[mailto:r-sig-finance-bounces at r-project.org] On Behalf Of Brian G. Peterson
Sent: 04 January 2011 18:37
To: r-sig-finance at r-project.org
Subject: Re: [R-SIG-Finance] Applying function on rolling window basis **
not rollapply() function in zoo
On 01/04/2011 07:20 AM, Bogaso Christofer wrote:
?period.apply  # for time series based apply

?apply.rolling # to apply with a fixed (rolling) width

or maybe the 'by' argument of rollapply.

   - Brian

_______________________________________________
R-SIG-Finance at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions
should go.
#
On Tue, Jan 4, 2011 at 8:20 AM, Bogaso Christofer
<bogaso.christofer at gmail.com> wrote:
The by= argument of rollapply does that:
2 5 8
2 5 8