On Nov 16, 2010, at 2:33 PM, 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.

There is a rollmean function in package zoo. See below.




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

I think you got your first ones out of sequence:

> apply(a, 2, rollmean, k=7)
      [,1] [,2]
 [1,]    4   21
 [2,]    5   22
 [3,]    6   23
 [4,]    7   24
 [5,]    8   25
 [6,]    9   26
 [7,]   10   27
 [8,]   11   28
 [9,]   12   29
[10,]   13   30
[11,]   14   31


--
David.
[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 <talentt...@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]]

______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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