Hello, does adding the line
\alias{coerce,numeric,matrix.diag.csr-method} to the Rd-file of your "matrix.diag.csr" class solve the mysterium? Matthias > Absolutely correct. Adding coerce to the NAMESPACE list of > exportMethods > 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") : No >>> method 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 ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel