Yes,  precisely.  This was done yesterday and the new version of SparseM
with NAMESPACE -- thanks again to Roger Bivand for his help with this --
should now be on CRAN.


On Nov 27, 2004, at 4:11 AM, [EMAIL PROTECTED] wrote:

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

Reply via email to