Joshua, Thanks for the tip.
I need to "roll my own" code on this. But perhaps I can borrow some code from the package you mentioned. Is the package just performing the loop, but in a faster language? -- Noah Silverman UCLA Department of Statistics 8117 Math Sciences Building #8208 Los Angeles, CA 90095 On Sep 2, 2011, at 9:58 AM, Joshua Ulrich wrote: > On Fri, Sep 2, 2011 at 11:47 AM, R. Michael Weylandt > <michael.weyla...@gmail.com> wrote: >> Have you looked at SMA/EMA from the TTR package? That's a pretty quick >> implementation. >> >> runmean from caTools is even better for the SMA but I don't think there's an >> easy way to turn that into an EWMA. >> > SMA still calls Fortran code, so that's why it's slower than > caTools::runmean. I've moved the EMA code to C, so it's about as fast > as it can be. > > Noah, use EMA's ratio argument to replicate your for loop. > >> Hope this helps, >> >> Michael Weylandt >> > > Best, > -- > Joshua Ulrich | FOSS Trading: www.fosstrading.com > > > >> On Fri, Sep 2, 2011 at 12:43 PM, Noah Silverman >> <noahsilver...@ucla.edu>wrote: >> >>> Hello, >>> >>> I need to calculate a moving average and an exponentially weighted moving >>> average over a fairly large data set (500K rows). >>> >>> Doing this in a for loop works nicely, but is slow. >>> >>> ewma <- data$col[1] >>> N <- dim(data)[1] >>> for(i in 2:N){ >>> data$ewma <- alpha * data$ewma[i-1] + (1-alpha) * data$value[i] >>> } >>> >>> >>> Since the moving average "accumulates" as we move through the data, I'm not >>> sure on the best/fastest way to do this. >>> >>> Does anyone have any suggestions on how to avoid a loop doing this? >>> >>> >>> >>> >>> -- >>> Noah Silverman >>> UCLA Department of Statistics >>> 8117 Math Sciences Building #8208 >>> Los Angeles, CA 90095 >>> >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> 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. >>> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. >> [[alternative HTML version deleted]] ______________________________________________ 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.