UseMethod (name) NextMethod(name, object, ...) methods(generic.function, class)
An R ``object'' is a data object which has a class attribute.
A class attribute is a vector of character strings giving the
names of the classes which the object ``inherits'' from.
When a generic function fun is applied to an object
with class attribute c("first","second"), the system searches
for a function called fun.first and, if it finds it,
applied it to the object. If no such function is found
a function called fun.second is tried.
If no class name produces a suitable function, the function
fun.default is used.
The function class prints the vector of names of classes
which an object inherits from.
Correspondingly, class<- sets the classes
which an object inherits from.
unclass returns (a copy of) its argument
with its class information removed.
is.object returns TRUE if its argument has a class
attribute and FALSE otherwise.
inherits indicates whether its first argument inherits
from a class with name equal to its second argument.
methods can be used to find out about the methods
for a particular generic function or class.
See the examples below for details.
Now for some obscure details that need to appear somewhere.
These comments will be slightly different than those in Appendix A of
the White S Book. UseMethod
creates a "new" function call with arguments matched as they came in to
the generic. Any local variables defined before the call to UseMethod are
retained (!?). Any statements after the call to UseMethod will
not be evaluated as UseMethod does not return.
NextMethod invokes the next method (determined by the class). It
does this by creating a special call frame for that method. The arguments
will be the same in number, order and name as those to the current method
but their values will be promises to evaluate their name in the current
method and environment. Any arguments matched to ... are handled
specially. They are passed on as the promise that was supplied as an
argument to the current environment. (S does this differently!) If they
have been evaluated in the current (or a previous environment) they
remain evaluated.
methods function was written by Martin Maechler.
class