There seems to be something wrong: > slide(c(1, 1, 0, 1), 2) [1] 2 2
but the output should be c(2, 1, 2) At any rate try this: library(zoo) 3 * rollmean(x, 3) On Mon, Dec 15, 2008 at 11:19 PM, Chris Oldmeadow <c.oldmea...@student.qut.edu.au> wrote: > Hi all, > > I have a very large binary vector, I wish to calculate the number of 1's > over sliding windows. > > this is my very slow function > > slide<-function(seq,window){ > n<-length(seq)-window > tot<-c() > tot[1]<-sum(seq[1:window]) for (i in 2:n) { > tot[i]<- tot[i-1]-seq[i-1]+seq[i] > } > return(tot) > } > > this works well for for reasonably sized vectors. Does anybody know a way > for large vectors ( length=12 million), im trying to avoid using C. > > Thanks, > Chris > > ______________________________________________ > 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. > ______________________________________________ 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.