Hi, Try: ?set.seed(45) ?df1<- data.frame(datetime=as.POSIXct("2011-05-25",tz="GMT")+1:200,value=sample(1:40,200,replace=TRUE),value2= sample(45:90,200,replace=TRUE)) res<-? with(df1,aggregate(cbind(value,value2),list(as.POSIXct(cut(datetime,breaks="5 sec"))+4),mean)) colnames(res)[1]<- colnames(df1)[1] ?head(res) #???????????? datetime value value2 #1 2011-05-25 00:00:05? 16.0?? 67.4 #2 2011-05-25 00:00:10? 10.8?? 60.0 #3 2011-05-25 00:00:15? 20.2?? 65.2 #4 2011-05-25 00:00:20? 17.8?? 65.2 #5 2011-05-25 00:00:25? 21.2?? 81.6 #6 2011-05-25 00:00:30? 21.4?? 56.2 #or library(plyr) res2<- ddply(df1,.(datetime=as.POSIXct(cut(df1$datetime,breaks="5 sec"))+4 ),numcolwise(mean)) ?head(res2) #???????????? datetime value value2 #1 2011-05-25 00:00:05? 16.0?? 67.4 #2 2011-05-25 00:00:10? 10.8?? 60.0 #3 2011-05-25 00:00:15? 20.2?? 65.2 #4 2011-05-25 00:00:20? 17.8?? 65.2 #5 2011-05-25 00:00:25? 21.2?? 81.6 #6 2011-05-25 00:00:30? 21.4?? 56.2 #or library(xts) originalTZ <- Sys.getenv("TZ") Sys.setenv(TZ = "GMT") xt1<- xts(df1[,2:3],order.by=df1[,1]) indx<-endpoints(xt1,'secs',5) ?res3<-period.apply(xt1,c(0,indx[-c(1,length(indx))]+1),FUN=mean) ?head(res3) #??????????????????? value value2 #2011-05-25 00:00:05? 16.0?? 67.4 #2011-05-25 00:00:10? 10.8?? 60.0 #2011-05-25 00:00:15? 20.2?? 65.2 #2011-05-25 00:00:20? 17.8?? 65.2 #2011-05-25 00:00:25? 21.2?? 81.6 #2011-05-25 00:00:30? 21.4?? 56.2 Sys.setenv(TZ = originalTZ) A.K. Hi, I am new to R and to this forum. I have to do a project for school and I have to calculate the mean of a set of values corresponding to certain times (in two columns). I will need to calculate the mean of the values every K seconds and I dont know how to divide my Time column or to link the values to their corresponding period. Could you give me a hand on this? Cheers!