# [R] using "rollapply" to calculate a moving sum or running sum?

arun smartpink111 at yahoo.com
Thu Jun 27 23:41:22 CEST 2013

Hi,
Try:
library(zoo)

rollapply(t(mymatrix),width=12,FUN=sum,by.column=T,fill=NA,partial=FALSE,align="left")
#     [,1] [,2] [,3] [,4] [,5]
#[1,]  342  354  366  378  390
#[2,]  402  414  426  438  450
#[3,]  462  474  486  498  510
#[4,]  522  534  546  558  570
#[5,]  582  594  606  618  630
#[6,]  642  654  666  678  690
#[7,]  702  714  726  738  750
#[8,]  762  774  786  798  810
#[9,]  822  834  846  858  870
#[10,]   NA   NA   NA   NA   NA
#[11,]   NA   NA   NA   NA   NA
#[12,]   NA   NA   NA   NA   NA
#[13,]   NA   NA   NA   NA   NA
#[14,]   NA   NA   NA   NA   NA
#[15,]   NA   NA   NA   NA   NA
#[16,]   NA   NA   NA   NA   NA
#[17,]   NA   NA   NA   NA   NA
#[18,]   NA   NA   NA   NA   NA
#[19,]   NA   NA   NA   NA   NA
#[20,]   NA   NA   NA   NA   NA
A.K.

----- Original Message -----
From: Anika Masters <anika.masters at gmail.com>
To: R help <r-help at r-project.org>
Cc:
Sent: Thursday, June 27, 2013 3:00 PM
Subject: [R] using "rollapply" to calculate a moving sum or running sum?

#using "rollapply" to calculate a moving sum or running sum?

#I am tryign to use rollapply to calcualte a moving sum? #I tried
rollapply and get the error message
#"Error in seq.default(start.at, NROW(data), by = by) :

#example:

mymatrix <- ( matrix(data=1:100, nrow=5, ncol=20) )
mymatrix_cumsum  <- ( matrix(data=NA, nrow=5, ncol=20) )
w=12
for(i in 1: (ncol(mymatrix)-w+1) ) {
mymatrix_cumsum[ , i]  <- apply(X=mymatrix[, i:(i+w-1)] , MARGIN=1,
FUN=sum, na.rm=T)
}

#How might I use the "rollapply" function instead?

rollapply(mymatrix, 12, sum)

rollapply(data = mymatrix, width = 12, FUN=sum, by.column =T, fill =
NA, partial = FALSE, align = "left" )

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help