From ripley at stats.ox.ac.uk  Wed Mar 26 17:58:37 2008
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Wed, 26 Mar 2008 16:58:37 +0000 (GMT)
Subject: [Rd] S4 slot with NA default
In-Reply-To: <Pine.LNX.4.64.0803261717220.11431@reclus.nhh.no>
References: <00025495-F390-4A46-885E-5FAD2B4B66A7@noc.soton.ac.uk>
	<Pine.LNX.4.64.0803261717220.11431@reclus.nhh.no>
Message-ID: <alpine.LFD.1.00.0803261656140.28049@gannet.stats.ox.ac.uk>

Several people have suggested as.numeric(NA).  That evaluates to NA_real_, 
so provided you don't want to support R < 2.5.0 it is (slightly) more 
efficient in several ways to use NA_real_ .

On Wed, 26 Mar 2008, Roger Bivand wrote:

> On Wed, 26 Mar 2008, 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=as.numeric(NA)))
> new("foo")
>
> is OK, we have a character NA prototype in an sp CRS class, and it's never
> been any trouble.
>
> Roger
>
>>
>>>
>> 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
>>
>
> --
> Roger Bivand
> Economic Geography Section, Department of Economics, Norwegian School of
> Economics and Business Administration, Helleveien 30, N-5045 Bergen,
> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
> e-mail: Roger.Bivand at nhh.no
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] S4 slot with NA default
Prof Brian Ripley