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.