
Dear all,

I'm new to S4 classes and have a question on this. I want to use S4 because I want to define explicitly the slots that the new class can have. But other than that, the new class behaves exactly like a list. But this will not allow me to use the generic functions that are already defined for class "list", such as "$", "c", "[[",  "names" or "length".

For example, I defined a new class "abc", and tried to use "$", "length", and "[[", but they do not work (which is shown below). I know I could define these methods for the new class, but is there an easy way to allow this new class to inherit  all the functions that work for class "list"? I tried to use contains="list", but this does not work either. Thanks for any help.

> setClass("abc", representation(x="numeric",y="character",z="numeric"))
[1] "abc"
> xxx=new("abc",x=1,y="a",z=2)
> xxx$a
Error in xxx$a : $ operator not defined for this S4 class
> length(xxx)
[1] 1
> xxx[[1]]
Error in xxx[[1]] : this S4 class is not subsettable



Wayne (Yanwei) Zhang
Statistical Research
CNA





NOTICE:  This e-mail message, including any attachments and appended messages, is for the sole use of the intended recipients and may contain confidential and legally privileged information.
If you are not the intended recipient, any review, dissemination, distribution, copying, storage or other use of all or any portion of this message is strictly prohibited.
If you received this message in error, please immediately notify the sender by reply e-mail and delete this message in its entirety.

	[[alternative HTML version deleted]]

