[R] sliding window over a large vector

Gabor Grothendieck ggrothendieck at gmail.com
Tue Dec 16 14:23:05 CET 2008


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.oldmeadow at 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 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