[R] How to make this binary hit matrix

Marc Schwartz marc_schwartz at comcast.net
Sun Jun 15 19:58:31 CEST 2008


on 06/15/2008 12:46 PM ssls sddd wrote:
> Hi all,
> 
> Basically I want to make a binary hit matrix.
> 
> For instance, if I have a file called 'pair.txt':
> 
> set_a    gene_1
> set_a    gene_2
> set_a    gene_3
> set_b    gene_3
> set_b    gene_4
> set_b    gene_5
> set_c    gene_1
> set_c    gene_3
> 
> And I want to convert it to a binary matrix as:
> 
> Rows    set_a    set_b    set_c
> gene_1    1    0    1
> gene_2    1    0    0
> gene_3    1    1    1
> gene_4    0    1    0
> gene_5    0    1    0
> 
> Can anyone suggest how to do this?
> 
> Thank you!
> 
> Alex

Presuming that your data is contained in a data frame called 'DF':

 > DF
      V1     V2
1 set_a gene_1
2 set_a gene_2
3 set_a gene_3
4 set_b gene_3
5 set_b gene_4
6 set_b gene_5
7 set_c gene_1
8 set_c gene_3


You can use:

 > t(table(DF))
         V1
V2       set_a set_b set_c
   gene_1     1     0     1
   gene_2     1     0     0
   gene_3     1     1     1
   gene_4     0     1     0
   gene_5     0     1     0


See ?table and ?t

HTH,

Marc Schwartz



More information about the R-help mailing list