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. > ______________________________________________ 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.