Hi all, I have used this library to create a (360 day)calendar for my rainfall data (which is divided over 9 gridcells): ## CODE## library(udunits) utInit() calendar <- att.get.nc(nc,'time','calendar') T <- var.get.nc(nc,"time") times.list <- utCalendar(T,"days since 1961-01-01",style='array',calendar=calendar) ## END CODE## **** To separate months and years I use: ## CODE## times.ind <- lapply(as.list(1:12), function(x,months) which(months == x), months = times.list$month) times.ind2 <- lapply(as.list(1961:1990), function(x,years) which(years == x), years = times.list$year) ## END CODE## Now I have two lists, the first contains months, for example, for times.ind[1] I get a list of day numbers which are from January. (so 1:30, 361:390 etc) The other list does the same for years times.ind2[1] gives the days 1:360 It is now possible for me to create for example monthly averages for each grid cell ##CODE## pr.monthmean <- sapply(times.ind, function(x,arr) rowMeans(arr[,,x],dims=2), arr = pr) ## END CODE## the same can be done for yearly averages. However, I would like to create a matrix with monthly averages for each year separately. I think I need to couple times.ind and times.ind2 in some way, but I do not know how to do this. Is there anyone who can help me with this? Thank you in advance, Kind regards, Saskia