[R] Function similar to cumsum/cumprod

Ben Bolker bolker at ufl.edu
Tue Sep 22 16:43:41 CEST 2009


Sergey Goriatchev <sergeyg <at> gmail.com> writes:

> 
> Hello, everyone
> 
> I wonder if there is in R somewhere a function similar to cumsum().
> The function calculates a statistic (say mean or standard deviation)
> buy adding consequtively one more data point.
> 
> So, say I have a timeseries of 100 observations.
> I start by calculating mean of first 30 observations
> Then I add one observation and calculate mean of 31 observations
> Then I add one more observation and calculate mean of 32 observation,
> and so on until the end
> 
> Is there a function like that in R?
> 
> Best,
> Sergey
> 

  There was some recent discussion of using Reduce(...,accumulate=TRUE)
but I think this won't work in your case.  For your particular case I
think

cumsum(z)/seq_along(z) gives the running mean you want
(starting from the first obs., not the 30th, but you can always
drop the first 30).  sd() is a little harder.  You might be
able to use the (numerically inaccurate) E[z^2]-E[z]^2 trick
with cumsum ...




More information about the R-help mailing list