[R] showMethods()! Re: How to find S4 generics?

Douglas Bates bates at stat.wisc.edu
Thu Jul 20 17:21:58 CEST 2006


Notice that in Martin's example he used

showMethods(class = "lmer", where = "package:Matrix")

The result is still not optimal but it is slightly more useful than
trying the default location.   The approach that Thomas contributed
earlier in this discussion is probably the better route.

On 7/20/06, Spencer Graves <spencer.graves at pdf.com> wrote:
> Hi, Martin:
>
>           I looked for 'showMethods' before I posted this question.  I see two
> possible reasons others might not have mentioned it previously -- and
> why my post didn't mention it:
>
> HARD TO FIND
>
>           Now that you have mentioned it, I recall having stumbled across it
> and used it once before.  It would help mightily if other relevant help
> pages included 'showMethods' under 'See Also', including 'methods'.
> Looking just now, I found it there under 'GenericFunctions'.  However,
> before I raised this question to the list, I spent maybe 20-30 minutes
> looking for it in different help pages, using RSiteSearch, etc., without
> success.
>
> NOT AS USEFUL AS THE NAME IMPLIES
>
>           Just now I tried '> showMethods(classes="lm")' and (with 'lme4' in
> the path' showMethods(classes="lmer").  With the results below.  I
> didn't find 'coef' or 'predict' or ... .
>
>           Thanks for the suggestion.
>           Spencer Graves
> ###################
>  > sessionInfo()
> Version 2.3.1 (2006-06-01)
> i386-pc-mingw32
>
> attached base packages:
> [1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets"
> [7] "base"
>
> other attached packages:
>        lme4     Matrix    lattice  robustLog
>   "0.995-2" "0.995-11"   "0.13-9"    "0.0-2"
>  > showMethods(classes="lm")
>
> Function "addNextMethod":
> <Empty Methods List>
>
> Function "Arith":
> <Empty Methods List>
>
> Function "body<-":
> <Empty Methods List>
>
> Function "cbind2":
> <Empty Methods List>
>
> Function "coerce":
> <Empty Methods List>
>
> Function "Compare":
> <Empty Methods List>
>
> Function "initialize":
> <Empty Methods List>
>
> Function "loadMethod":
> <Empty Methods List>
>
> Function "Math":
> <Empty Methods List>
>
> Function "Math2":
> <Empty Methods List>
>
> Function "rbind2":
> <Empty Methods List>
>
> Function "show":
> <Empty Methods List>
>
> Function "Summary":
> <Empty Methods List>
> NULL
>  > showMethods(classes="lmer")
>
> Function "addNextMethod":
> <Empty Methods List>
>
> Function "Arith":
> <Empty Methods List>
>
> Function "body<-":
> <Empty Methods List>
>
> Function "cbind2":
> <Empty Methods List>
>
> Function "coerce":
> <Empty Methods List>
>
> Function "Compare":
> <Empty Methods List>
>
> Function "initialize":
> <Empty Methods List>
>
> Function "loadMethod":
> <Empty Methods List>
>
> Function "Math":
> <Empty Methods List>
>
> Function "Math2":
> <Empty Methods List>
>
> Function "rbind2":
> <Empty Methods List>
>
> Function "show":
> <Empty Methods List>
>
> Function "Summary":
> <Empty Methods List>
> NULL
>
> Martin Maechler wrote:
> >>>>>> "SpG" == Spencer Graves <spencer.graves at pdf.com>
> >>>>>>     on Wed, 19 Jul 2006 15:23:58 -0700 writes:
> >
> >     SpG> Hi, Thomas: Thanks very much.  I haven't tried it yet,
> >     SpG> but it looks very useful.  Best Wishes, Spencer Graves
> >
> > Hmm,  ?methods  has been containing for a while
> >
> > methods> Note:
> > methods>
> > methods>    This scheme is called _S3_ (S version 3).  For new projects, it is
> > methods>    recommended to use the more flexible and robust _S4_ scheme
> > methods>    provided in the 'methods' package.  Functions can have both S3 and
> > methods>    S4 methods, and function 'showMethods' will list the S4 methods
> > methods>    (possibly none).
> >
> > So I wonder why nowbody mentioned the official
> >
> >   showMethods()
> >
> >   (or are you all not reading the help pages  ;-\) )
> >
> > It does  not always return / print what I want exactly, and in
> > the past, at one point I put some effort to make its output more
> > customizable.
> > I didn't put that effort to the end (*)
> > but for the present case
> >
> >     showMethods(class = "ddiMatrix", where = "package:Matrix")
> >
> > at least is pretty useful.
> >
> > (*)  I think I had added the  'showEmpty = TRUE'  argument
> >      where the current documentation says
> >
> >  showM>   showEmpty: logical indicating if methods with empty
> >  showM>              method lists should be shown at all.
> >  showM>     Note that 'FALSE' is _not yet implemented_.
> >
> > and the non-implementation had a reason: implementation was
> > definitely much less simple than I had hoped ...
> >
> > Martin
> >
> >
> >     SpG> Thomas Lumley wrote:
> >     >> 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("lmer"
> >     >> methods4("ddiMatrix") methods4("ddiMatrix",super=TRUE)
> >     >>
> >     >> -thomas
> >     >>
> >     >> methods4<-function(classes, super=FALSE, ANY=FALSE){ if
> >     >> (super) classes<-unlist(sapply(classes, function(cl)
> >     >> getAllSuperClasses(getClass(cl)))) if (ANY)
> >     >> classes<-c(classes,"ANY") gens<-allGenerics()@.Data
> >     >> sigs<-lapply(gens, function(g)
> >     >> linearizeMlist(getMethods(g))@classes)
> >     >> names(sigs)<-gens at .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
> >     >> tlumley at u.washington.edu University of Washington,
> >     >> Seattle
> >     >>
> >     >> ______________________________________________
> >     >> R-help at stat.math.ethz.ch mailing list
> >     >> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do
> >     >> read the posting guide
> >     >> http://www.R-project.org/posting-guide.html and provide
> >     >> commented, minimal, self-contained, reproducible code.
> >
> >     SpG> ______________________________________________
> >     SpG> R-help at stat.math.ethz.ch mailing list
> >     SpG> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do
> >     SpG> read the posting guide
> >     SpG> http://www.R-project.org/posting-guide.html and provide
> >     SpG> commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list