Re: [R] How to find S4 generics?

From: Thomas Lumley <>
Date: Thu 20 Jul 2006 - 08:05:16 EST

On Wed, 19 Jul 2006, Spencer Graves wrote:
> Am I correct then that the 'methods' function could, at least
> theoretically, be revised so methods(class=...) could identify both S3
> and S4 methods (ignoring inheritance, as it does now, I believe)?

Here is a function to find methods for a formal class. It returns a list with elements corresponding to a generic, and each element is a list of strings showing all the signatures that contain any of the specified classes.

If super=TRUE it looks at all superclasses, if ANY=TRUE it also returns methods for ANY class.

If you have lme4 loaded, try



methods4<-function(classes, super=FALSE, ANY=FALSE){

   if (super) classes<-unlist(sapply(classes, function(cl) getAllSuperClasses(getClass(cl))))    if (ANY) classes<-c(classes,"ANY")
   sigs<-lapply(gens, function(g) linearizeMlist(getMethods(g))@classes)    names(sigs)<-gens@.Data
   sigs<-lapply(sigs, function(gen){ gen[unlist(sapply(gen, function(sig) any(sig %in% classes)))]})    sigs[sapply(sigs,length)>0]

Thomas Lumley			Assoc. Professor, Biostatistics	University of Washington, Seattle

______________________________________________ mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Thu Jul 20 08:34:50 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 20 Jul 2006 - 10:22:22 EST.

Mailing list information is available at Please read the posting guide before posting to the list.