The 'filter' function should be able
to do what you want efficiently.

On 02/09/2011 18:06, Noah Silverman 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?


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


--
Patrick Burns
pbu...@pburns.seanet.com
twitter: @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')

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

Reply via email to