From r.hankin at noc.soton.ac.uk  Wed Mar 26 17:04:11 2008
From: r.hankin at noc.soton.ac.uk (Robin Hankin)
Date: Wed, 26 Mar 2008 16:04:11 +0000
Subject: [Rd] S4 slot with NA default
Message-ID: <00025495-F390-4A46-885E-5FAD2B4B66A7@noc.soton.ac.uk>

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



[Rd] S4 slot with NA default
Robin Hankin