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.weylandt@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 <noahsilverman@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]]

