[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