[R] vectorizing a matrix computation

Wolski wolski at molgen.mpg.de
Tue Jul 20 11:54:54 CEST 2004


Hallo Christoph!

Using apply and sweep.
Both of them accept  as the second argument (MARGIN) a vector which specifies the dimension.

?apply
?sweep.

To specify the subscripts accurately I always need some trials, and to run tests, so I cant you provide with the final solution.

Hope it helps anyway.

Sincerely Eryk.



*********** REPLY SEPARATOR  ***********

On 7/20/2004 at 11:31 AM Christoph Lehmann wrote:

>>>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
>>>
>>>Cheers
>>>
>>>Christoph
>>>
>>>______________________________________________
>>>R-help at stat.math.ethz.ch mailing list
>>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>>>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



Dipl. bio-chem. Eryk Witold Wolski    @    MPI-Moleculare Genetic   
Ihnestrasse 63-73 14195 Berlin       'v'    
tel: 0049-30-83875219               /   \    
mail: wolski at molgen.mpg.de        ---W-W----    http://www.molgen.mpg.de/~wolski




More information about the R-help mailing list