On Wed, 2 Mar 2005 17:22:43 -0500, "Whit Armstrong"
<[EMAIL PROTECTED]> wrote :

>Does anyone know an easy way to calculate the rolling 20 period average
>or sum of a vector?
>
>For instance:
>x <- rnorm(1000)
>
>y <- apply.subset(x,20,fun="sum")
>
>The first element of y would contain the sum of elements 1 to 20, the
>second element of y 
>would contain the sum of elements 2:21, and so on.
>
>I thought I had seen this on the list a year or so ago, but I couldn't
>find anything in the archives.

I don't know of a general purpose function, but filter() (in the stats
package) can do the example you give, or any other linear filter.

e.g.

x <- rnorm(1000)
y <- filter(x, rep(1,20))

puts 20 element sums into y.  The vector ends up the same length as x,
with NAs at the beginning and end (by default).

Duncan Murdoch

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to