[R] [newbie] *apply to matching elements of n arrays?

Tom Roche Tom_Roche at pobox.com
Thu May 9 02:38:12 CEST 2013


How to apply a function to all elements with the same indices in
multiple arrays? E.g.:

I have two spatial grids defined the same way (i.e., same number of
rows and columns--and dimensions, both 2D). Wherever both

* the value of an element i,j in the first grid is NA
* the value of element i,j in the second grid is !NA

I want to copy the value from grid2[i,j] to grid1[i,j]. These matrices
are not too big, so I'm able to do this with loops, but I know that's
not "the R way." How to parallelize/vectorize this, e.g., with a
single call to an 'apply'-type method? I believe I know how to operate
on a single matrix (e.g., by using `apply` to traverse it by rows or
cols), but not how to operate on multiple matrices.

Extra points for solutions that generalize to 3D or 4D (i.e., that allow
applying the same function to identical elements in n arrays of n
dimensions), since I will almost certainly need to work on arrays of
those dimensions eventually.

Apologies if this is a FAQ, but a fair amount of googling via
rseek.org is not finding an answer (perhaps because I'm not using the
correct search terms). Feel free (in fact, be encouraged :-) to reply
directly to me as well as the list (I'm on the digest, which gets huge).

TIA, Tom Roche <Tom_Roche at pobox.com>



More information about the R-help mailing list