They can be regarded as incidence matrices rather than adjacency matrices and in that case it follows:
library(igraph) # incidence matrix to canonical edge list inc2canel <- function(m) { g <- graph.incidence(m) cp <- canonical.permutation(g) can <- permute.vertices(g, cp$labeling) el <- get.edgelist(can) el[ order(el[,1], el[,2]), ] } # test it out m1 <- matrix(c(0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1), 7) m2 <- m1[7:1, 8:1] m3 <- m2; m3[1, ] <- 1 identical(inc2canel(m1), inc2canel(m2)) # TRUE identical(inc2canel(m1), inc2canel(m3)) # FALSE On Sun, Aug 23, 2009 at 6:09 PM, Steve Lianoglou<mailinglist.honey...@gmail.com> wrote: > Hi, > > On Sun, Aug 23, 2009 at 4:14 PM, Michael Kogan<michael.ko...@gmx.net> wrote: >> Thanks for all the replies! >> >> Steve: I don't know whether my suggestion is a good one. I'm quite new to >> programming, have absolutely no experience and this was the only one I could >> think of. :-) I'm not sure whether I'm able to put your tips into practice, >> unfortunately I had no time for much reading today but I'll dive into it >> tomorrow. > > Ok, yeah. I'm not sure what the best way to do this myself, I would at > first see if one could reduce these matrices by some principled manner > and then do a comparison, which might jump to: > >> Ted: Wow, that's heavy reading. In fact the matrices that I need to compare >> are incidence matrices so I suppose it's exactly the thing I need, but I >> don't know if I have the basics knowledge to understand this paper within >> the next months. > > Ted's sol'n. I haven't read the paper, but its title gives me an idea. > Perhaps you can assume the two matrices you are comparing are > adjacency matrices for a graph then use the igraph library to do a > graph isomorphism test between the two graphs represented by your > adjacency matrices and see if they are the same. > > This is probably not the most efficient (computationally) way to do > it, but it might be the quickest way out coding-wise. > > I see your original example isn't using square matrices, and an > adjacency matrix has to be square. Maybe you can pad your matrices > with zero rows or columns (depending on what's deficient) as an easy > way out. > > Just an idea. > > Of course, if David's solution is what you need, then no need to > bother with any of this. > > -steve > > -- > Steve Lianoglou > Graduate Student: Computational Systems Biology > | Memorial Sloan-Kettering Cancer Center > | Weill Medical College of Cornell University > Contact Info: http://cbio.mskcc.org/~lianos/contact > > ______________________________________________ > 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. > ______________________________________________ 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.