R-Devel:

When I get the data part of an S4 class that contains="data.frame", it gives
me a list, even when the "data.frame" is the S4 version:

> d<-data.frame(x=1:3)
> isS4(d)
[1] FALSE                           # of course
> dS4<-new("data.frame",d)
> isS4(dS4)
[1] TRUE                            # ok
> class(dS4)
[1] "data.frame"                   # good
attr(,"package")
[1] "methods"
> setClass("A", representation(label="character"), contains="data.frame")
[1] "A"
> a<-new("A",dS4, label="myFrame")
> getDataPart(a)
[[1]]                                  # oh?
[1] 1 2 3

> class(a@.Data)
[1] "list"                           # hmm
> names(a)
[1] "x"                             # sure, that makes sense
> a
Object of class "A"
  x
1 1
2 2
3 3
Slot "label":
[1] "myFrame"


Was I wrong to have expected the "data part" of 'a' to be a "data.frame"?

Thanks.

Dan Murphy

	[[alternative HTML version deleted]]

