On Wed, Jul 11, 2012 at 10:05 AM, Russell Bowdrey <russell.bowd...@justretirement.com> wrote: > > Dear all, > > This is what I'd like to do (I have an implementation using for loops, which > I designed before I realised just how slow R is at executing them - this > process currently takes days to run). > > I have a large dataframe containing corporate bond data, columns are: > BondID > Date (goes back 5years) > Var1 > Var2 > Term2Maturity > > What I want to do is this: > > 1) For each bond, at each given date, look back over 1 year and append > some statistics to each row ( sd(Var1), cor(Var1,Var2) over that year etc) >
Look at the TTR package and the various run** functions. Much faster. > a. It seems I might be able to use ddply for this, but I can't work out > how to code the stats function to only look back over one year, rather than > the full data range > > b. For example: dfBondsWithCorr<-ddply(dfBonds, .(BondID), > transform,corr=cor(Var1,Var2),.progress="text") > returns a dataframe where for each bond it has same corr for each date > > 2) On each date, subset dfBondsWithCorr by certain qualification > criteria, then to the qualifiers fit a regression through a Var1 and > Term2Maturity, output the regression as a df of curves (say for each date, a > curve represented by points every 0.5 years) > > a. I can do this pretty efficiently for a single date (and I suppose I > could wrap that in a function) , but can't quite see how to do the filtering > and spitting out of curves over multiple dates without using for loops > This ones harder. For simple linear regressions, you can solve the regression analytically (e.g., slope = runCov / runVar and mean similarly) but doing it for more complicated regressions will pretty much require a for loop of one sort or another. Can you say what sort of model you are looking to use? Best, Michael > Would appreciate any thoughts, many thanks in advance > > > Russ > > > > This email and any attachments are confidential and inte...{{dropped:30}} > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.