apply() is your friend. You can specify more than one dimension in argument 'MARGIN'. Example:
> x <- array(1:100,c(3,4,5)) > y <- apply(x, MARGIN=c(2,3), FUN=sum) > y [,1] [,2] [,3] [,4] [,5] [1,] 6 42 78 114 150 [2,] 15 51 87 123 159 [3,] 24 60 96 132 168 [4,] 33 69 105 141 177 > z <- matrix(0, nrow=4, ncol=5); > for (ii in 1:3) z <- z + x[ii,,]; > z [,1] [,2] [,3] [,4] [,5] [1,] 6 42 78 114 150 [2,] 15 51 87 123 159 [3,] 24 60 96 132 168 [4,] 33 69 105 141 177 > stopifnot(all.equal(z,y)) /Henrik On Fri, Oct 1, 2010 at 12:38 PM, yunjiangster <yunjiangs...@gmail.com> wrote: > > Hi, > I am looking for some generalization of colSums and rowSums for general > vector valued functions, and for arrays of more than 2 dimensions. > So as a concrete example, suppose I have a 3 dimensional array, given by x > = array(1:100,c(3,4,5)). > and I want to sum the 3rd index of x to obain a 3 by 4 matrix. Using rowSums > would return a vector of length 3 because it treats the last two indices as > a single index. > > Besides summation, let's say if I define a vector valued function > f<-function(x){min(x[1],min(x[2],x[3]))}, and I want to apply f to the last > index of x, meaning for each 1<= i <= 3, 1<=j <=4, I want to compute > f(x[i,j,]), and then put them in a 3 by 4 matrix. How would I be able to do > that without using a for loop? > > thanks. > > Sincerely, > John > -- > View this message in context: > http://r.789695.n4.nabble.com/How-to-apply-vector-value-function-to-a-multidimensional-array-indexed-by-the-remaining-dimensions-tp2937368p2937368.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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.