On 6/2/2005 4:19 PM, Stefan Mischke wrote:
Dear List

I have two large matrices A and B. Both have the same dimensions, let's say 20k x 30k. About half the cells of B are missing. Now I'm looking for an efficient way to merge them, so that the missing values in B are replaced by the corresponding values of A.

Matrix A
        [,1]    [,2]    [,3]
[1,]    1       2       3
[2,]    4       5       6

merged with Matrix B

        [,1]    [,2]    [,3]
[1,]    10      NA      NA
[2,]    NA      50      60

equals

        [,1]    [,2]    [,3]
[1,]    10      2       3
[2,]    4       50      60

One way to do this, is of course looping through all the cells, checking for NAs and then replacing them with the corresponding values. But this is way too slow for my application. There must be a more efficient way.
Does R provide any functions for this?

As long as the dimensions are the same:

replace <- is.na(B)
B[replace] <- A[replace]

should work.

Duncan Murdoch

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to