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

From: Douglas Bates <bates_at_stat.wisc.edu>
Date: Fri 21 Jul 2006 - 01:21:58 EST

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@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@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@.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@u.washington.edu University of Washington,
> > >> Seattle
> > >>
> > >> ______________________________________________
> > >> R-help@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@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@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.
>



R-help@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. Received on Fri Jul 21 06:56:27 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 Fri 21 Jul 2006 - 08:18:34 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.