On Jan 19, 2009, at 3:54 PM, Dimitris Rizopoulos wrote:

try this:

A <- matrix(c(3,3,3,3,3,3,3,3,3),3,3)
B <- matrix(c(T,T,T,F,T,T,F,T,F),3,3)

C <- A
C[!B] <- NA
C


Very elegant. Another, perhaps less elegant, effort:

B[which(B == FALSE)] <- NA
> B
     [,1] [,2] [,3]
[1,] TRUE   NA   NA
[2,] TRUE TRUE TRUE
[3,] TRUE TRUE   NA
> C <- matrix(A * B, 3,3)   # A * B is *not* matrix multiplication
>
>
> C
     [,1] [,2] [,3]
[1,]    3   NA   NA
[2,]    3    3    3
[3,]    3    3   NA

--
David Winsemius

I hope it helps.

Best,
Dimitris


Andrej Kastrin wrote:
Dear all,
Suppose that I have a matrix A
  A <- matrix(c(3,3,3,3,3,3,3,3,3),3,3)
and a logical matrix B
  B <- matrix(c(T,T,T,F,T,T,F,T,F),3,3)
The result  matrix should be
  C <- matrix(c(3,3,3,NA,3,3,NA,3,NA),3,3)
Is there any simple tip or trick to perform this without looping?
Thanks in advance for any suggestion.
Best regards, Andrej
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to