[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) :
# wrong sign in 'by' argument"
#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
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list