Benilton, novamente obrigado pela resposta e tempo. Antes de executar o seu código, porém, eu tentei rodar o seguinte:
##
P <- 2000:2010
Rep <- letters[1:5]
TF <- 1:2
CC <- paste("H-",101:299,sep="")
a <- expand.grid(P=P,R=Rep,TF=TF,CC=CC)
a$y <- rnorm(nrow(a))
a$z <- runif(nrow(a))
# Alternativa 3
library(snow)
ncpu<-4
cl<-makeSOCKcluster(rep("localhost",ncpu))
clusterEvalQ(cl,library(zoo))
clusterExport(cl,'a')
ind<-split(seq(nrow(a)),list(a$R,a$CC,a$TF))
a.2<-parLapply(cl,ind,function(i,k){
cbind(ma.y=c(rep(NA,k-1),rollmean(a$y[i],k)),
ma.z=c(rep(NA,k-1),rollmean(a$z[i],k)))
},k=3)
a.2.1<-cbind(a,do.call(rbind,a.2))
a.2.2<-na.omit(a.2.1)