Re: [R] Array arithmetic

2008-03-06 Thread Gang Chen
Thank both of you for the suggestions! Gang On Mar 6, 2008, at 2:12 PM, Henrique Dallazuanna wrote: > Hum you are rigth, I forgot of 'else'. > > On 06/03/2008, Benilton Carvalho <[EMAIL PROTECTED]> wrote: >> no, it won't. >> >> you're doing the right math on the "valid" subset... but you're no

Re: [R] Array arithmetic

2008-03-06 Thread Benilton Carvalho
no, it won't. you're doing the right math on the "valid" subset... but you're not returning the zeros where needed therefore, the whole thing will get recycled to match the dimensions. b On Mar 6, 2008, at 2:03 PM, Henrique Dallazuanna wrote: I think this should work: array(A[abs(B)

Re: [R] Array arithmetic

2008-03-06 Thread Henrique Dallazuanna
Hum you are rigth, I forgot of 'else'. On 06/03/2008, Benilton Carvalho <[EMAIL PROTECTED]> wrote: > no, it won't. > > you're doing the right math on the "valid" subset... but you're not > returning the zeros where needed therefore, the whole thing will > get recycled to match the dimension

Re: [R] Array arithmetic

2008-03-06 Thread Henrique Dallazuanna
I think this should work: array(A[abs(B) > 10e-5]/B[abs(B) > 10e-5], dim=c(L, M, N, P)) On 06/03/2008, Gang Chen <[EMAIL PROTECTED]> 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) {

Re: [R] Array arithmetic

2008-03-06 Thread Benilton Carvalho
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 i