[R] Accelerating the calculation of the moving average

Tonja Krueger tonja.krueger at web.de
Tue Mar 22 16:05:47 CET 2011


Dear List,
I have a data frame with approximately 500000 rows that looks like this:

 Date    time    value
…
19.07.1956          12:00:00               4.84
19.07.1956          13:00:00               4.85
19.07.1956          14:00:00               4.89
19.07.1956          15:00:00               4.94
19.07.1956          16:00:00               4.99
19.07.1956          17:00:00               5.01
19.07.1956          18:00:00               5.04
19.07.1956          19:00:00               5.04
19.07.1956          20:00:00               5.04
19.07.1956          21:00:00               5.02
19.07.1956          22:00:00               5.01
19.07.1956          23:00:00               5.00
20.07.1956          00:00:00               4.99
20.07.1956          01:00:00               4.99
20.07.1956          02:00:00               5.00
20.07.1956          03:00:00               5.03
20.07.1956          04:00:00               5.07
20.07.1956          05:00:00               5.10
20.07.1956          06:00:00               5.14
20.07.1956          07:00:00               5.14
20.07.1956          08:00:00               5.11
20.07.1956          09:00:00               5.08
20.07.1956          10:00:00               5.03
20.07.1956          11:00:00               4.98
20.07.1956          12:00:00               4.94
20.07.1956          13:00:00               4.93
…

I want to calculate
the moving average of the right column.
I tried:

dat$index<-1:length(dat$Zeit)
qs<- 43800
erg<-c()
for (y in min(dat$index):max(dat$index)){
m<- mean(dat[(dat$index>=y)&(dat$index<=y+qs+1),3])
erg<-c(erg,m)
}

It does works, but it takes ages. Is there a faster way to compute the moving average? 

Thank you, 
Tonja Krueger


___________________________________________________________
Handy Internet-Flat ¿ gratis ¿ mit WEB.DE FreePhone



More information about the R-help mailing list