[R] merge large matrices
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Jun 2 22:29:14 CEST 2005
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
More information about the R-help
mailing list