[Rd] Namespaces, coercion and setAs
Roger Bivand
Roger.Bivand at nhh.no
Fri Nov 26 19:29:29 CET 2004
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 rkoenker at uiuc.edu Department of Economics
> vox: 217-333-4558 University of Illinois
> fax: 217-244-6678 Champaign, IL 61820
>
> ______________________________________________
> R-devel at stat.math.ethz.ch 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: Roger.Bivand at nhh.no
More information about the R-devel
mailing list