[R] setClassUnion
Matthias.Kohl@uni-bayreuth.de
Matthias.Kohl at uni-bayreuth.de
Thu Oct 14 15:34:17 CEST 2004
sorry, please replace exportClass by exportClasses
> Hello,
>
> I have a question concerning "setClassUnion".
> I'm working with R 2.0.0 Patched (2004-10-06) on windows 2000.
>
> I tried to use "setClassUnion" in a package I am currently working on.
> The situation is similar to the following example:
>
> The DESCRIPTION file has entries:
> Depends: R (>= 2.0.0), methods
> Imports: methods
> LazyLoad: yes
>
> The NAMESPACE file has entries:
> importClassesFrom("methods", "NULL", "numeric")
> exportClass("OptionalNumeric", "class1", "class2")
exportClasses("OptionalNumeric", "class1", "class2")
>
> The example R code is:
> .onLoad <- function(lib, pkg){
> require("methods", character = TRUE, quietly = TRUE)
> }
>
> setClassUnion("OptionalNumeric", c("numeric", "NULL"))
>
> setClass("class1",
> representation(test1 = "OptionalNumeric"),
> prototype(test1 = numeric(1)))
>
> # why does this not work?
> # The error I get is:
> # Error in makePrototypeFromClassDef(properties, ClassDef, immediate, #
> where) :In making the prototype for class "class1" elements of the #
> prototype failed to match the corresponding slot class: test1
> # (class "OptionalNumeric ")
> # Sourcing this into R gives no error for me
>
> # but instead using
> prototype(test1 = NULL)
> # works
>
> # Moreover, using the second version (with test1 = NULL)
> # the following works, too
> setClass("class2",
> representation(test2 = "class1"),
> prototype(test2 = new("class1", test1 = numeric(1))))
>
> What am I doing wrong?
> Can someone please explain this to me?
>
> Thanks for your help,
> Matthias
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list