[R] Changing a logical matrix into a numeric matrix
(Ted Harding)
ted.harding at wlandres.net
Mon Jan 10 10:39:18 CET 2011
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.harding at wlandres.net>
Fax-to-email: +44 (0)870 094 0861
Date: 10-Jan-11 Time: 09:39:15
------------------------------ XFMail ------------------------------
More information about the R-help
mailing list