[R] vector math: calculating a rolling 12 row product?

Gabor Grothendieck ggrothendieck at gmail.com
Tue Feb 28 16:41:16 CET 2006


Use as.matrix to convert your data frame to a matrix
and suppose we have this test data as a matrix:

  mat <- matrix(seq(30*7), 30, 7)

Then try this:

  library(zoo)
  mat2 <- coredata(rapply(zoo(mat), 12, prod))

See:

   library(zoo)
   vignette("zoo")

and the various zoo help files for more info.


On 2/28/06, r user <ruser2006 at yahoo.com> wrote:
> I have a dataframe of numeric values with 30 "rows"
> and 7 "columns".
>
> For each column, beginning at "row" 12 and down to
> "row" 30, I wish to calculate the "rolling 12 row
> product".  I.e., within each column, I wish to
> multiply all the values in row 1:12, 2:13,…19:30.
>
> I wish to save the results as a new dataframe, which
> will have 19 rows and 7 columns.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list