Try apply: library(zoo) # rollmean
# test data m <- matrix(1:3, 3, 3) x <- list(m, m+3, m+6) # convert to array a <- array(unlist(x), c(3, 3, 3)); a # apply rollmean and permute to desired form aa <- apply(a, 1:2, rollmean, k = 2) aperm(aa, c(2, 3, 1)) The last line outputs: > aperm(aa, c(2, 3, 1)) , , 1 [,1] [,2] [,3] [1,] 2.5 2.5 2.5 [2,] 3.5 3.5 3.5 [3,] 4.5 4.5 4.5 , , 2 [,1] [,2] [,3] [1,] 5.5 5.5 5.5 [2,] 6.5 6.5 6.5 [3,] 7.5 7.5 7.5 On Sat, Jan 2, 2010 at 10:00 AM, Muhammad Rahiz <muhammad.ra...@ouce.ox.ac.uk> wrote: > Let me rephrase; > > Given x as > >> x > > [[1]] > V1 V2 V3 > [1,] 1 1 1 > [2,] 2 2 2 > [3,] 3 3 3 > > [[2]] > V1 V2 V3 > [1,] 4 4 4 > [2,] 5 5 5 > [3,] 6 6 6 > > [[3]] > V1 V2 V3 > [1,] 7 7 7 > [2,] 8 8 8 > [3,] 9 9 9 > > I'd like to calculate the moving average (interval = 2) i.e. > > ( x[[1]] + x[[2]] ) / 2 > ( x[[2]] + x[[3]] ) / 2 > ... and so on. > > The desired output will return > > 2.5 2.5 2.5 > 3.5 3.5 3.5 > 4.5 4.5 4.5 > > 5.5 5.5 5.5 > 6.5 6.5 6.5 > 7.5 7.5 7.5 > > > > > Muhammad Rahiz | Doctoral Student in Regional Climate Modeling > Climate Research Laboratory, School of Geography & the Environment > Oxford University Centre for the Environment, University of Oxford > South Parks Road, Oxford, OX1 3QY, United Kingdom > Tel: +44 (0)1865-285194 Mobile: +44 (0)7854-625974 > Email: muhammad.ra...@ouce.ox.ac.uk > > > > milton ruser wrote: >> >> Dear M.Rahiz, >> >> Unfortunatelly I can't reproduce your example. >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html> >> >> bests >> >> milton >> On Sat, Jan 2, 2010 at 9:26 AM, Muhammad Rahiz >> <muhammad.ra...@ouce.ox.ac.uk<mailto:muhammad.ra...@ouce.ox.ac.uk>> wrote: >> Hello useRs, >> >> I'd like to perform a moving average on the dataset, xx. I've tried >> combining the functions Reduce and rollmean but it didn't work. >> >> >>> >>> r <- function(n) rollmean(n, 2) # where 2 = averaging interval >>> output < - Reduce("r", x) >>> >> >> Error in f(init, x[[i]]) : unused argument(s) (x[[i]]) >> >> Is there anything wrong with the code in the first place? >> >> where >> >>> >>> x >>> >> >> [[1]] >> V1 V2 V3 >> [1,] 1 1 1 >> [2,] 2 2 2 >> [3,] 3 3 3 >> >> [[2]] >> V1 V2 V3 >> [1,] 4 4 4 >> [2,] 5 5 5 >> [3,] 6 6 6 >> >> [[3]] >> V1 V2 V3 >> [1,] 7 7 7 >> [2,] 8 8 8 >> [3,] 9 9 9 >> >> The moving average is to be performed on >> >> 1,4,7 = (1+4)/2 , (4+7)/2 >> 2,5,8 = .. >> 3,6,9 = .. >> >> Thanks >> >> Muhammad >> >> -- >> Muhammad Rahiz | Doctoral Student in Regional Climate Modeling >> Climate Research Laboratory, School of Geography & the Environment >> Oxford University Centre for the Environment, University of Oxford >> South Parks Road, Oxford, OX1 3QY, United Kingdom >> Tel: +44 (0)1865-285194 Mobile: +44 (0)7854-625974 >> Email: muhammad.ra...@ouce.ox.ac.uk<mailto:muhammad.ra...@ouce.ox.ac.uk> >> >> ______________________________________________ >> R-help@r-project.org<mailto: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<http://www.r-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> >> >> > > ______________________________________________ > 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. > ______________________________________________ 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.