Hi, Not sure if this is what you wanted.
mydf[,1] <- mydf[,1]+ISOdatetime(1970,1,1,0,0,0) library(zoo) z1 <- zoo(mydf[,2],mydf[,1]) fun1 <- function(z,n,k){ unlist(lapply(split(z,((seq_along(z)-1) %/% n) +1), function(x) rollapply(c(rep(NA,k),x),width=n,mean,na.rm=TRUE)),use.names=FALSE) } #1-10 fun1(z1,10,9) #1-3 fun1(z1,3,2) #4-7 fun1(z1,7,3) #8-10 fun1(z1,10,2) A.K. I have a data frame that contains daily temperature and want to calculate running averages from the lags. How could I create the following four averages: 1 to 10 days, 1 to 3 days and 4 to 7 days and 8 to 10 days? Thanks > dput(mydf) structure(list(mydate = c(1104537600, 1104624000, 1104710400, 1104796800, 1104883200, 1104969600, 1105056000, 1105142400, 1105228800, 1105315200, 1105401600, 1105488000, 1105574400, 1105660800, 1105747200, 1105833600, 1105920000, 1106006400, 1106092800, 1106179200, 1106265600, 1106352000, 1106438400, 1106524800, 1106611200, 1106697600, 1106784000, 1106870400, 1106956800, 1107043200, 1107129600, 1107216000, 1107302400, 1107388800, 1107475200, 1107561600, 1107648000, 1107734400, 1107820800, 1107907200, 1107993600, 1108080000, 1108166400, 1108252800, 1108339200, 1108425600, 1108512000, 1108598400, 1108684800, 1108771200, 1108857600, 1108944000, 1109030400, 1109116800, 1109203200, 1109289600, 1109376000, 1109462400, 1109548800, 1109635200), temperature = c(27.2355645811212, 24.7572454841433, 25.8807360325073, 23.604983194918, 25.3806158930898, 25.4522163920789, 23.3634003395322, 21.8857290467555, 25.7885123837986, 25.2892335838452, 28.576293971409, 23.9336020581815, 27.0939456273958, 28.3913410122702, 25.909021640904, 26.2460484822251, 25.1575616245794, 22.8368740313366, 27.6642857968485, 25.1196788026597, 22.5894167843065, 30.2988617359284, 24.8434897031825, 23.4057719286007, 24.4344849657242, 26.1064563281548, 28.8237562787261, 26.2779314012608, 24.9246895989705, 25.9247118455481, 26.8168149658814, 24.5976817973611, 23.0279799404805, 23.8692145542798, 20.5706428459246, 25.2535816755043, 24.1579034687891, 26.2783929119493, 24.1524000712139, 23.6602196383023, 24.0011597837778, 21.2285591199996, 26.019106804625, 27.8057491046718, 24.3857746554726, 27.0899941525061, 29.3171144596242, 25.6280205868316, 24.5556883088479, 27.8460189886338, 27.614311224526, 26.3826496863349, 23.357578632432, 22.6042279901428, 23.3671729098119, 26.3785847646844, 24.3646932790827, 25.9119679458049, 26.5848087900931, 27.0119408766481)), .Names = c("mydate", "temperature"), row.names = c(NA, -60L), class = "data.frame") ______________________________________________ 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.