[R] sliding window over a large vector

Gabor Grothendieck ggrothendieck at gmail.com
Tue Dec 16 15:12:33 CET 2008


On Tue, Dec 16, 2008 at 8:23 AM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> 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)

That should be c(2, 1, 1)

>
> 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