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]