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

______________________________________________
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