resolves the problem. Leaves only the mildly mysterious
Undocumented S4 methods: generic coerce and siglist numeric,matrix.diag.csr All user-level objects in a package (including S4 classes and methods) should have documentation entries.
to clean up. Thanks very much!!
Roger
On Nov 26, 2004, at 12:29 PM, Roger Bivand wrote:
On Fri, 26 Nov 2004, roger koenker wrote:
I'm trying to resolve a small problem that has arisen from introducing a
NAMESPACE for the package SparseM. Prior to the namespace I had a class
"matrix.diag.csr" that consisted of diagonal sparse matrices. It was
defined to have the same attributes as the matrix.csr class and setAs
was used to define how to coerce integers and vectors into this form:
setClass("matrix.diag.csr","matrix.csr")
setAs("numeric","matrix.diag.csr",function(from){
if(length(from)==1){
n <- as.integer(from)
if(n>0) from <- rep(1,n)
else stop("Sparse identity matrices must have positive,
integer dimension")
}
else n <- length(from)
return(new("matrix.diag.csr", ra = from ,ja = as.integer(1:n),
ia = as.integer(1:(n+1)), dimension =
as.integer(c(n,n))))
})
This seemed to be fine. I could do,
A <- as(5,"matrix.diag.csr")
and A would be a 5x5 identity matrix in sparse form. But post-namespace
I get:
A <- as(5,"matrix.diag.csr") Error in as(5, "matrix.diag.csr") : Nomethod or default for coercing "numeric" to "matrix.diag.csr"
so apparently using exportClass(matrix.diag.csr) isn't sufficient for
coerce to know what to do. Using findClass("matrix.diag.csr") indicates
that the class is recognized to be from SparseM, so my question is: is
there some mechanism that I'm missing in the NAMESPACE scheme that would
enable my old setAs() directive to work, or is there some other
suggestion on how to proceed?
I'm far from sure about this, but is "coerce" one of the exported methods?
I'm having the same difficulty in retrofitting a NAMESPACE to the
forthcoming sp package of spatial classes, for S4 classes.
I see from src/library/methods/NAMESPACE that as and coerce are exported
from there - should a package with a NAMESPACE and S4 classes do
import(methods) ?
Roger
url: www.econ.uiuc.edu/~roger Roger Koenker email [EMAIL PROTECTED] Department of Economics vox: 217-333-4558 University of Illinois fax: 217-244-6678 Champaign, IL 61820
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
e-mail: [EMAIL PROTECTED]
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel