On 10-Jan-11 09:17:26, emj83 wrote:
> Hi,
> 
> I would like to turn my TRUE/FALSE matrix into a 1/0 matrix (i.e.
> True=1 and
> False=0)
> 
>       [,1]  [,2]  [,3]  
> [1,]  TRUE FALSE FALSE 
> [2,]  TRUE  TRUE FALSE 
> [3,]  TRUE  TRUE  TRUE 
> 
>       [,1]  [,2]  [,3]  
> [1,]    1    0     0
> [2,]    1    1     0
> [3,]    1    1     1
> 
> Is there a quick way of doing this without a loop?
> Thanks Emma

As soon as logic encounters arithmetic, TRUTH and FALSITY
cease to exist -- they get hijacked!

Hence: multiply your matrix by 1. For example:

  A <- matrix(c(TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE),ncol=4)
  A
  #       [,1] [,2]  [,3]  [,4]
  # [1,]  TRUE TRUE  TRUE FALSE
  # [2,] FALSE TRUE FALSE  TRUE

  B <- 1*A
  B
  #      [,1] [,2] [,3] [,4]
  # [1,]    1    1    1    0
  # [2,]    0    1    0    1

(You could also add zero: B <- 0+A)

Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <ted.hard...@wlandres.net>
Fax-to-email: +44 (0)870 094 0861
Date: 10-Jan-11                                       Time: 09:39:15
------------------------------ XFMail ------------------------------

______________________________________________
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