Folks:

This is a question about the S4 formal class system.

Suppose I have a class, 'foo', defined by:

setClass('foo',representation(dat='matrix', id='character') )

I wish to define a '[' method for foo that will extract from the 'dat' slot.
I would have thought that the following would work, but it doesn't:

setMethod("[","foo",function(x,i, j, .,drop=TRUE)callGeneric([EMAIL 
PROTECTED],i,
j,drop=drop) )

The only way I have succeeded in defining this method is using brute force
eval(parse(. :

{eval(parse(text=paste('.dat(x)[',
        ifelse(missing(i),',','i,'),
        ifelse(missing(j),']','j]'))))
        }

This works. However, I am not able under any circumstances to pass the drop
argument -- it is ignored.

I would appreciate any pointers about how to do this properly. If  this is
explicitly in the Green Book (I do not have it with me at the moment), that
will suffice.

Thanks.

Bert Gunter


        [[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to