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.