[Rd] Same method for more than one class

Gregor Gorjanc gregor.gorjanc at bfro.uni-lj.si
Thu Mar 1 11:47:42 CET 2007


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"))

Currently it issues an error

setClass(Class="myClass1", representation=representation(x="integer"))
setClass(Class="myClass2", representation=representation(x="integer"))
setMethod(f="length", signature(x="myClass1"),
          def=function(x) {
            cat("works")
          })
## OK.

setMethod(f="length", signature(x=c("myClass1", "myClass1")),
          def=function(x) {
            cat("works")
          })
Error in signature(x = c("myClass1", "myClass1")) :
	bad class specified for element 1 (should be a single character string)

Regards, Gregor



More information about the R-devel mailing list