[R-SIG-Finance] Generating Monthly Returns from a ton of daily data
Dirk Eddelbuettel
edd at debian.org
Fri Jun 5 04:24:45 CEST 2009
On 4 June 2009 at 21:05, Joshua Ulrich wrote:
| Here's some code that does what Brian suggested (using Gabor's style):
It's also easy to do it by hand using basic factor() usage (as I just
explained today to one of our interns :) :
## first create some dates as a simple sequence, and some pseudo pnl
R> randomdates <- seq(Sys.Date(), Sys.Date()+90, by=1)
R> randompnl <- zoo( seq(1, length(randomdates)), order.by=randomdates )
## the key then is to create a factor for the desired aggregation, here by month
R> datefactor <- as.factor( format(index(randompnl), "%m") )
## and all it takes is a call to tapply() [ or by() ] with the data, factor
## variable and aggregation function
R> tapply( coredata(randompnl), datefactor, sum )
06 07 08 09
378 1333 2294 181
I even made it more complicated than necessary by keeping it as zoo objects
etc pp.
Hth, Dirk
--
Three out of two people have difficulties with fractions.
More information about the R-SIG-Finance
mailing list