[R] transforming a matrix of logical to 0 and 1 while keeping the dim of matrix

David Winsemius dwinsemius at comcast.net
Wed Jul 20 17:39:06 CEST 2011


Two further methods:

 > x+0
      [,1] [,2] [,3]
[1,]    1    0    1
[2,]    0    1    0
[3,]    1    0    1

 > mode(x)<- "numeric"; x
      [,1] [,2] [,3]
[1,]    1    0    1
[2,]    0    1    0
[3,]    1    0    1


On Jul 20, 2011, at 11:27 AM, Sarah Goslee wrote:

> How about this:
>> x<-matrix(c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE),nrow=3)
>> x
>      [,1]  [,2]  [,3]
> [1,]  TRUE FALSE  TRUE
> [2,] FALSE  TRUE FALSE
> [3,]  TRUE FALSE  TRUE
>> ifelse(x, 1, 0)
>     [,1] [,2] [,3]
> [1,]    1    0    1
> [2,]    0    1    0
> [3,]    1    0    1
>
> Sarah
>
> On Wed, Jul 20, 2011 at 11:16 AM, Julian TszKin Chan  
> <cjulian at bu.edu> wrote:
>> Hi all,
>>
>> Suppose I have a matrix of logical value:
>>
>> x<-matrix(c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE),nrow=3)
>>
>> I would like to change the value of FALSE to 0 and TRUE to 1. An
>> obvious way to do it is :
>> y<-as.numeric(x)
>>
>> However this method doesn't keep the dim of x. I also need to copy  
>> the
>> dim information to y too.
>> attributes(y)<-attributes(x)
>>
>> Is this a correct way to do it in R? Is there any single step  
>> function
>> which can do the something? Thanks
>>
>>
>> Regards,
>> TszKin Julian
>>
>
> -- 
> Sarah Goslee
> http://www.functionaldiversity.org
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list