[Rd] S4 Inheritance of environments
Roger Peng
rdpeng at gmail.com
Sun Apr 25 03:07:51 CEST 2010
I think using 'is(inEnv, "environment")' produces the answer you
expect. Can't explain the other anomalies though.
-roger
On Sat, Apr 24, 2010 at 1:15 PM, Christopher Brown
<cbrown at opendatagroup.com> wrote:
> I looked through the documentation and the mailing lists and could not
> find an answer to this. My apologies if it has already been answered.
> If it has, a pointer to the relevant discussion would be greatly
> appreciated.
>
> Creating S4 classes containing environments exhibits unexpected
> behavior/features. These have a different in two ways:
>
> 1) slotName for the data: ".xData" instead of ".Data" and do not respond to the
> 2) Response to the is.* function seems to indicate that the object
> does not know of its inheritance. ( Notably, the inherits function
> works as expected. )
>
> Here is a working illustration:
>
>> # LIST
>> setClass( 'inheritList', contains='list')
> [1] "inheritList"
>> inList <- new( 'inheritList' )
>> class( inList )
> [1] "inheritList"
> attr(,"package")
> [1] ".GlobalEnv"
>> is.list( inList ) # TRUE
> [1] TRUE
>> slotNames(inList) # ".Data"
> [1] ".Data"
>> inherits(inList, 'list' ) # TRUE
> [1] TRUE
>>
>>
>> # ENVIRONMENT
>> setClass( 'inheritEnv', contains='environment' )
> Defining type "environment" as a superclass via class ".environment"
> [1] "inheritEnv"
>> inEnv <- new( 'inheritEnv' )
>> class(inEnv)
> [1] "inheritEnv"
> attr(,"package")
> [1] ".GlobalEnv"
>> is.environment(inEnv) # FALSE
> [1] FALSE
>> slotNames(inEnv) # ".xData"
> [1] ".xData"
>> inherits(inEnv, 'environment' ) # TRUE
> [1] TRUE
>
> My questions is whether this behavior is a bug? By design? A work
> around? Etc.?
>
> Thanks kindly for your reply,
>
> Chris
>
>
> the Open Data Group
> http://www.opendatagroup.com
> http://blog.opendatagroup.com
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Roger D. Peng | http://www.biostat.jhsph.edu/~rpeng/
More information about the R-devel
mailing list