Thanks to everyone. Paolo
On 16 November 2010 20:14, William Dunlap <wdun...@tibco.com> wrote: > 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<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<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.