Hi Laurence,





Laurence Kell FM CEFAS wrote:
[...]
LUdecomposition is an S4 class defined as

setClass("LUdecomposition", representation(a="matrix", pivot = "integer"))

This works in R 1.7.0 and R 1.7.1 but if I initialise any of the slots

setClass("LUdecomposition", representation(a="matrix", pivot = "integer"),
                            prototype=list(pivot = NA)                    )

then I get the following error message in R 1.7.1 but not R 1.7.0

Error in makePrototypeFromClassDef(properties, ClassDef, immediate) :
        In making the prototype for class "LUdecomposition" elements of the
prototype
        failed to match the corresponding slot class: pivot (class " integer
")

Why can I no longer use the prototype to set the default values?

just tried your example in R 1.6.2 and it worked. And as you say for R 1.7.1 it won't.


So take a look at (R 1.7.1)

> setClass("LUdecompositio", representation(a="matrix", pivot = "integer"), prototype(pivot=NA))
[1] "LUdecompositio"


> lu<-new("LUdecompositio")
Error in makePrototypeFromClassDef(properties, ClassDef, immediate) :
In making the prototype for class "LUdecompositio" elements of the prototype failed to match the corresponding slot class: pivot (class " integer ")


> setClass("LUdecompositi", representation(a="matrix", pivot = "integer"), prototype(pivot=as.integer(NA))
+
+ )
[1] "LUdecompositi"


> lu3<-new("LUdecompositi")
> lu3
An object of class "LUdecompositi"
Slot "a":
<0 x 0 matrix>

Slot "pivot":
[1] NA

> is([EMAIL PROTECTED])
[1] "integer" "vector"  "numeric"

So providing an explicit cast in the prototype cures the problem.

HTH,

Matthias



Laurence Kell
CEFAS Lowestoft Laboratory
Pakefield Road
Lowestoft, NR33 0HT
UK
Tel +44 1502 52 42 57
Fax +44 1502 52 45 11
e-mail [EMAIL PROTECTED]






[[alternative HTML version deleted]]


______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help



--
Matthias Burger

Bioinformatics R&D
Epigenomics AG                      www.epigenomics.com
Kleine Pr?sidentenstra?e 1          fax:   +49-30-24345-555
10178 Berlin Germany                phone: +49-30-24345-0

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to