From: Benilton Carvalho <bcarvalh_at_jhsph.edu>

Date: Thu, 06 Mar 2008 14:03:03 -0500

set.seed(1)

A = array(rnorm(L*M*N*P), dim=c(L, M, N, P)) B = array(rnorm(L*M*N), dim=c(L, M, N))

B[sample(100, 10)] = 0

C = array(0, dim=c(L, M, N, P))

blah = function(x, y){tmp = x/y; tmp[abs(y) <= 10e-5]=0; return(tmp)} D = sweep(A, 1:3, B, blah)

identical(C, D)

R-help_at_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. Received on Thu 06 Mar 2008 - 19:06:37 GMT

Date: Thu, 06 Mar 2008 14:03:03 -0500

apparently you forgot the "commented, minimal, self-contained, reproducible code" part...

L = 10 M = 20 N = 30 P = 40

set.seed(1)

A = array(rnorm(L*M*N*P), dim=c(L, M, N, P)) B = array(rnorm(L*M*N), dim=c(L, M, N))

B[sample(100, 10)] = 0

C = array(0, dim=c(L, M, N, P))

for (i in 1:L) { for (j in 1:M) { for (k in 1:N) {

if (abs(B[i, j, k]) > 10e-5) C[i, j, k,] <- A[i, j, k,]/B[i, j, k] else C[i, j, k,] <- 0

} } }

blah = function(x, y){tmp = x/y; tmp[abs(y) <= 10e-5]=0; return(tmp)} D = sweep(A, 1:3, B, blah)

identical(C, D)

b

On Mar 6, 2008, at 1:33 PM, Gang Chen wrote:

> I have two arrays A and B with dimensions of (L, M, N, P) and (L, M,

*> N), and I want to do
**>
**> for (i in 1:L) {
**> for (j in 1:M) {
**> for (k in 1:N) {
**> if (abs(B[i, j, k]) > 10e-5) C[i, j, k,] <- A[i, j, k,]/B[i, j, k]
**> else C[i, j, k,] <- 0
**> }
**> }
**> }
**>
**> How can I get C more efficiently than looping?
**>
**> Thanks,
**> Gang
**>
**> ______________________________________________
**> R-help_at_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_at_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. Received on Thu 06 Mar 2008 - 19:06:37 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 06 Mar 2008 - 19:30:20 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*