[Rd] Same method for more than one class
Sean Davis
sdavis2 at mail.nih.gov
Thu Mar 1 12:20:56 CET 2007
On Thursday 01 March 2007 06:18, Sean Davis wrote:
> On Thursday 01 March 2007 05:47, Gregor Gorjanc wrote:
> > Hi,
> >
> > when defining method (I used length bellow just for the simplicity) for
> > myClass (S4 class) I use
> >
> > setMethod(f="length", signature(x="myClass"),
> > def=function(x) {
> > cat("works")
> > })
> >
> > If I have myClass1 and myClass2 and mentioned method, which is not the
> > default one, applies to both classes I have to write two setMethod()
> > statements. Would it be possible to use
> >
> > signature(x=c("myClass1", "myClass2"))
>
> Could you do:
>
> catFun <- function(x) {
> cat("Works")
> }
> setMethod(f="length", signature(x="myClass1"),def=catFun)
> setMethod(f="length", signature(x="myClass2"),def=catFun)
That said, it your myclass1 and myclass2 are related, you may want to make
them both subclasses of a virtual class. You could then use that virtual
class in the signature or anywhere you wanted common functionality for two or
more classes.
Sean
More information about the R-devel
mailing list