showMethods
Show all the methods for the specified function(s) or class
Show a summary of the methods for one or more generic functions, possibly restricted to those involving specified classes.
- Keywords
- methods
Usage
showMethods(f = character(), where = topenv(parent.frame()),
classes = NULL, includeDefs = FALSE,
inherited = !includeDefs,
showEmpty, printTo = stdout(), fdef)
.S4methods(generic.function, class)
Arguments
- f
one or more function names. If omitted, all functions will be shown that match the other arguments.
The argument can also be an expression that evaluates to a single generic function, in which case argument
fdef
is ignored. Providing an expression for the function allows examination of hidden or anonymous functions; see the example forisDiagonal()
.- where
Where to find the generic function, if not supplied as an argument. When
f
is missing, or length 0, this also determines which generic functions to examine. Ifwhere
is supplied, only the generic functions returned bygetGenerics(where)
are eligible for printing. Ifwhere
is also missing, all the cached generic functions are considered.- classes
If argument
classes
is supplied, it is a vector of class names that restricts the displayed results to those methods whose signatures include one or more of those classes.- includeDefs
If
includeDefs
isTRUE
, include the definitions of the individual methods in the printout.- inherited
logical indicating if methods that have been found by inheritance, so far in the session, will be included and marked as inherited. Note that an inherited method will not usually appear until it has been used in this session. See
selectMethod
if you want to know what method would be dispatched for particular classes of arguments.- showEmpty
logical indicating whether methods with no defined methods matching the other criteria should be shown at all. By default,
TRUE
if and only if argumentf
is not missing.- printTo
The connection on which the information will be shown; by default, on standard output.
- fdef
Optionally, the generic function definition to use; if missing, one is found, looking in
where
if that is specified. See also comment in ‘Details’.- generic.function, class
See
methods
.
Details
See methods
for a description of .S4methods
.
The name and package of the generic are followed by the list of signatures for which methods are currently defined, according to the criteria determined by the various arguments. Note that the package refers to the source of the generic function. Individual methods for that generic can come from other packages as well.
When more than one generic function is involved, either as specified or
because f
was missing, the functions are found and
showMethods
is recalled for each, including the generic as the
argument fdef
. In complicated situations, this can avoid some
anomalous results.
Value
If printTo
is FALSE
, the character vector that would
have been printed is returned; otherwise the value is the connection
or filename, via invisible
.
References
Chambers, John M. (2008) Software for Data Analysis: Programming with R Springer. (For the R version.)
Chambers, John M. (1998) Programming with Data Springer (For the original S4 version.)
See Also
setMethod
, and GenericFunctions
for other tools involving methods;
selectMethod
will show you the method dispatched for a
particular function and signature of classes for the arguments.
methods
provides method discovery tools for light-weight
interactive use.
Examples
library(methods)
# NOT RUN {
require(graphics)
# }
# NOT RUN {
## Assuming the methods for plot
## are set up as in the example of help(setMethod),
## print (without definitions) the methods that involve class "track":
showMethods("plot", classes = "track")
# }
# NOT RUN {
# Function "plot":
# x = ANY, y = track
# x = track, y = missing
# x = track, y = ANY
require("Matrix")
showMethods("%*%")# many!
methods(class = "Matrix")# nothing
showMethods(class = "Matrix")# everything
showMethods(Matrix:::isDiagonal) # a non-exported generic
# }
# NOT RUN {
<!-- %end{dontrun} -->
# }
# NOT RUN {
# }
# NOT RUN {
<!-- %% An example of showing methods from a loaded, -->
# }
# NOT RUN {
<!-- %% but not attached namespace. -->
# }
# NOT RUN {
if(no4 <- is.na(match("stats4", loadedNamespaces())))
loadNamespace("stats4")
showMethods(classes = "mle") # -> a method for show()
if(no4) unloadNamespace("stats4")
# }