Re: [Rd] Namespaces, coercion and setAs

From: Roger Bivand <Roger.Bivand_at_nhh.no>
Date: Sat 27 Nov 2004 - 05:29:29 EST


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@uiuc.edu Department of Economics
> vox: 217-333-4558 University of Illinois
> fax: 217-244-6678 Champaign, IL 61820
>
> ______________________________________________
> R-devel@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@nhh.no

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Sat Nov 27 05:37:24 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 09:01:46 EST