From: <Matthias.Kohl_at_uni-bayreuth.de>

Date: Sat 27 Nov 2004 - 21:11:38 EST

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Nov 27 21:18:13 2004

Date: Sat 27 Nov 2004 - 21:11:38 EST

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 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
*

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Nov 27 21:18:13 2004

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