[Rd] S4 slot with NA default

Christian Kohler Christian.Kohler at klinik.uni-regensburg.de
Wed Mar 26 17:24:44 CET 2008


Hi Robin,

you could try this:
> setClass("foo",
representation=representation(x="numeric"),prototype=list(x=as.numeric(NA)))
> test<-new("foo")
> test
>An object of class "foo"
>Slot "x":
>[1] NA


Cheers,
Christian


Robin Hankin wrote:
> Hi
>
> How do I specify an S4 class with a slot that is potentially numeric,  
> but NA
> by default?  I   want the slot to be NA until I calculate its value
>   (an expensive operation, not needed for all applications).   When  
> its value is
> known, I  will create a new object with the correct value inserted in  
> the slot.
>
> I want "NA" to signify "not known".
>
> My attempt fails because NA is not numeric:
>
>  >  
> setClass 
> ("foo",representation=representation(x="numeric"),prototype=list(x=NA))
> Error in makePrototypeFromClassDef(properties, ClassDef, immediate,  
> where) :
>    in making the prototype for class "foo" elements of the prototype  
> failed to match the corresponding slot class: x (class “numeric” )
>  >
>
> (the real application has other slots too).   I can
> use "NaN", which is numeric:
>
>  >  
> setClass 
> ("foo",representation=representation(x="numeric"),prototype=list(x=NaN))
> [1] "foo"
>  >
>
> But this is not the correct sense: to me "NaN" means "not a number"  
> and I want
> the sense to be "not available".
>
>
>
> Any advice?
>
>
>
>
>
> --
> Robin Hankin
> Uncertainty Analyst and Neutral Theorist,
> National Oceanography Centre, Southampton
> European Way, Southampton SO14 3ZH, UK
>   tel  023-8059-7743
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>   


-- 

Christian Kohler
Institute of Functional Genomics
Computational Diagnostics
University of Regensburg (BioPark I)
D-93147 Regensburg (Germany)

Tel. +49 941 943 5055
Fax  +49 941 943 5020
christian.kohler at klinik.uni-regensburg.de



More information about the R-devel mailing list