On 12/11/2012 01:46 PM, Søren Højsgaard wrote:
I represent a graph as an adjacency matrix of class "dgCMatrix" (from the 
Matrix package).

xx
5 x 5 sparse Matrix of class "dgCMatrix"
   a b c d e
a . 1 1 . .
b 1 . 1 . .
c 1 1 . 1 1
d . . 1 . 1
e . . 1 1 .

To check if the matrix defines and undirected graph, I have made the following 
functions/methods:

is.UG <- function (object) {
    UseMethod("is.UG")
}
is.UG.dgCMatrix <- function (object) {
     is.adjMAT(object) && (max(abs(t(object) - object)) == 0)
}

Note: 1) is.adjMAT is homegrown and 2) I know there is an "isSymmetric" method, 
but I can't get that to work either. These functions are in a package and when I load the 
package I get:

is.UG(xx)
Error in t.default(object) : argument is not a matrix

You take the transpose of a dgCMatrix. This is supposed to use one of the showMethods('t') from Matrix, but I guess your package NAMESPACE file does not importMethodsFrom(Matrix, t) or similar.

Martin Morgan


is.UG.dgCMatrix(xx)
Error in t.default(object) : argument is not a matrix

Interestingly, if I copy and past the definitions above into an R-session 
things do work:

is.UG <- function (object) {
+    UseMethod("is.UG")
+ }
is.UG.dgCMatrix <- function (object) {
+     is.adjMAT(object) && (max(abs(t(object) - object)) == 0)
+ }

is.UG(xx)
[1] TRUE
is.UG.dgCMatrix(xx)
[1] TRUE

Can anyone help here?

Best regards
Søren


xx <- new("dgCMatrix"
     , i = c(1L, 2L, 0L, 2L, 0L, 1L, 3L, 4L, 2L, 4L, 2L, 3L)
     , p = c(0L, 2L, 4L, 8L, 10L, 12L)
     , Dim = c(5L, 5L)
     , Dimnames = list(c("a", "b", "c", "d", "e"), c("a", "b", "c", "d", "e"))
     , x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
     , factors = list()

______________________________________________
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.



--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

______________________________________________
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