[R] Replacing the for loop for time series buid-up
David Winsemius
dwinsemius at comcast.net
Sun Dec 19 15:33:46 CET 2010
On Dec 19, 2010, at 8:08 AM, Torch wrote:
>
> Hi,
> is there a function that replaces the following code?
>
> n=200
> boot.x[1]=odhad+boot.res[1] #(boot.x[0]=1)
No. there is no boot.x[0] ... in R anyway.
>
> for (j in 1:(n-1)) {
> boot.x[j+1]=odhad*boot.x[j]+boot.res[j+1]
> }
>
> This is nested in two other loops, and I am looking for some way to
> improve
> code performance
> I tried sapply and cumprod but no success.
Probably because you didn't use paper and pencil to figure out what
x_n was going to be.
You end up with a series that looks like:
boot.x[n] = odhad^n + boot.res[1]*odhad^(n-1) +boot.res[2]*odhad^(n-2)
+ ... boot.res[n]
I'm thinking you should play around with n=20 instead of 200 because
I don't know what odhad might be and I'd be afraid of overflow with
the ^200 operation. Here's a failed attempt:
geo_od <- odhad^(19:0)
geo_res <- boot.res*geo_od
boot.x <- odhad^(1:20) + cumsum(geo_res)
But that's not correct ... except for the fact that it does get the
last term correct.
>
> Thanks
> Jan
> --
> View this message in context: http://r.789695.n4.nabble.com/Replacing-the-for-loop-for-time-series-buid-up-tp3094421p3094421.html
> Sent from the R help mailing list archive at Nabble.com.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list