[R] vectorizing a matrix computation

Christoph Lehmann christoph.lehmann at gmx.ch
Tue Jul 20 11:31:04 CEST 2004

Dear R users

I have a 4-dimensional matrix (actually several 3d (x,y, slices) 
matrices appended over time (volumes))

say, e.g. I want to z-transform the data (subtract the mean and divide 
by the std-deviation)

for (slice in 1:slices) {
     for (x in 1:x.dim) {
         for (y in 1:y.dim) {
         t <- as.matrix(my.matrix[x,y,slice,1:volumes])
         for (vol in 1:volumes) {
             my.matrix.transformed[x,y,slice,vol] <- 
(my.matrix[x,y,slice,vol] - mean(t))/sqrt(var(t))

how can I vectorize such a function using, one of the *apply functions?

many thanks



More information about the R-help mailing list