# Re: [R] Array arithmetic

From: Gang Chen <gangchen_at_mail.nih.gov>
Date: Thu, 06 Mar 2008 15:57:35 -0500

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 <bcarvalh_at_jhsph.edu> 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 dimensions.
>>
>>
>> b
>>
>>
>> On Mar 6, 2008, at 2:03 PM, Henrique Dallazuanna wrote:
>>
>>> 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 <gangchen6_at_gmail.com> 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
>>>> posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>
>>>
>>> --
>>> Henrique Dallazuanna
>>> Curitiba-Paraná-Brasil
>>> 25° 25' 40" S 49° 16' 22" O
>>>
>>> ______________________________________________
>>> R-help_at_r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
>
>
> --
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help