Have you tried filter()? filter(a, rep(1,7)/7) Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Ray Brownrigg > Sent: Tuesday, November 16, 2010 12:05 PM > To: r-help@r-project.org > Subject: Re: [R] Computing Rolling Average > > On Wed, 17 Nov 2010, Paolo Rossi wrote: > > Hi, > > Can anyone suggest a clever way to compute a rolling > weekly average of the > > columns in a matrix? The column bit is straightforward - > use apply given a > > function which does what you want on a column. With regard > to a particular > > column, the obvious way is to run a for loop indexing the > last 7 days and > > computing the average . I simply would like to know if > there is a better / > > quicker way. > > > > > > > > Code: > > Given a, > > > > > a= array(1:100, dim = c(17,2)) > > > a > > > > [,1] [,2] > > [1,] 1 18 > > [2,] 2 19 > > [3,] 3 20 > > [4,] 4 21 > > [5,] 5 22 > > [6,] 6 23 > > [7,] 7 24 > > [8,] 8 25 > > [9,] 9 26 > > [10,] 10 27 > > [11,] 11 28 > > [12,] 12 29 > > [13,] 13 30 > > [14,] 14 31 > > [15,] 15 32 > > [16,] 16 33 > > [17,] 17 34 > > one needs to start computing the average from obs 7 s (at > obs 7 you have a > > full week to compute the average) and compute the rolling > weekly average > > from day 7 onwards > > Results will look like b > > [,1] [,2] > > [1,] 4 14 > > [2,] 5 21 > > [3,] 6 22 > > [4,] 7 23 > > [5,] 8 24 > > [6,] 9 25 > > [7,] 10 26 > > [8,] 11 27 > > [9,] 12 28 > > [10,] 13 29 > > Thanks in advance, > > > I don't see how an average of 7 numbers all 18 or greater can > be 14, as in your > result[1, 2], unless you have mis-stated the question. > > Anyway, try: > apply(a, 2, function(x) {cx <- cumsum(x); N <- length(x); > (cx[7:N] - c(0, cx[1:(N-7)]))/7} > > HTH > Ray Brownrigg > > > Paolo > > ______________________________________________ > 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.