On Fri, Sep 2, 2011 at 12:06 PM, Noah Silverman <noahsilver...@ucla.edu> wrote: > 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? > As I said, the function is in C. You could also use the compiler package to compile your pure R function for a 3-4x speedup.
Best, -- Joshua Ulrich | FOSS Trading: www.fosstrading.com > > -- > 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. > ______________________________________________ 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.