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,

Paolo



On 15 November 2010 20:59, wangwallace <talenttree@gmail.com> wrote:

>
> Hey,
>
> I am hoping someone can help me with a sampling question.
>
> I have a data frame of 8 variables (the first column is the subjects' id):
>
>    SubID    CSE1 CSE2 CSE3 CSE4 WSE1 WSE2 WSE3 WSE4
>      1          6      5       6       2      6      2        2       4
>      2          6      4       7       2      6      6        2       3
>      3          5      5       5       5      5      5        4       5
>      4          5      4       3       4      4      4        5       2
>      5          5      6       7       5      6      4        4       1
>      6          5      4       3       6      4      3        7       3
>      7          3      6       6       3      6      5        2       1
>      8          3      6       6       3      6      5        4       7
>
> the 6 variables are categorized into two groups with CSE1, CSE2, CSE3, and
> CSE4 in one group and the rest in another group.
>
> >sample(data[,2:4],2,replace=FALSE)
>
>   CSE1 CSE2
> 1      6    5
> 2      6    4
> 3      5    5
> 4      5    4
> 5      5    6
> 6      5    4
> 7      3    6
> 8      3    6
>
> Now I want to sample 1 column from another group of variables (i.e., WSE1,
> WSE2, WSE3, WSE4), but I want to restrict a vector I am going to sample
> from
> to only those columns that are not correspond to GROUP 1 variables I have
> sampled. That is, I want to sample a column from WSE3, WSE4  Columns
> corresponding to CSE1 and CSE2 (i.e., WSE1, WSE2) need to be dropped.
>
> How can I do this? what if I want to repeat this whole process (drawing 2
> random columns from CSE1, CSE2, CSE3, and CSE4 first, AND then another
> random column from WSE1, WSE2, WSE3, and WSE4) for 1000 times. any ideas?
>
> Many thanks in advance!!
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Sampling-problem-tp3043804p3043804.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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]]

