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