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.

Reply via email to