[R] vectorizing a matrix computation
Liaw, Andy
andy_liaw at merck.com
Tue Jul 20 17:47:25 CEST 2004
I think this should do:
z <- apply(my.matrix, 1:3, scale)
z <- aperm(z, c(2:4, 1))
Andy
> From: Christoph Lehmann
>
> 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
>
>
More information about the R-help
mailing list