This help topic is for R version 1.5.0. For the current version of R, try https://stat.ethz.ch/R-manual/R-patched/library/base/html/zMethods.html
Methods {base}R Documentation

Internal and Group Methods and Generic Functions

Description

Many R-internal functions are generic and allow methods to be written for. Group methods in particular are available for the "Math", "Ops", and "Summary" group.

Usage

Math.data.frame(x, ...)
Math.factor(x, ...)

Ops.data.frame(e1, e2 = NULL)
Ops.factor(e1, e2)
Ops.ordered(e1, e2)

Summary.data.frame(x, ...)
Summary.factor(x, ...)

.Method
.Generic
.Group
.Class

Arguments

x, e1, e2

objects.

...

further arguments passed to methods.

Group Dispatching

There are three groups for which methods can be written, namely the "Math", "Ops" and "Summary" groups.

A function f belonging to one of these groups must be .Internal or .Primitive and will automatically be using <grp>.<class> (ob) when f(<ob>) is called, f belongs to group <grp> and <ob> is of class <class>.

  1. Group "Math":

    • abs, sign, sqrt,
      floor, ceiling, trunc,
      round, signif

    • exp, log,
      cos, sin, tan,
      acos, asin, atan

      cosh, sinh, tanh,
      acosh, asinh, atanh

    • lgamma, gamma, gammaCody,
      digamma, trigamma, tetragamma, pentagamma

    • cumsum, cumprod, cummax, cummin

  2. Group "Ops":

    • "+", "-", "*", "/", "^", "%%", "%/%"

    • "&", "|", "!"

    • "==", "!=", "<", "<=", ">=", ">"

  3. Group "Summary":

    • all, any

    • sum, prod

    • min, max

    • range

Simple Dispatching

The following builtin functions are generic as well, i.e., you can write methods for them:

[, [[

dimnames<-, dimnames, dim<-, dim

c, unlist, as.vector, is.na, is.nan

References

Appendix A, Classes and Methods of
Chambers, J. M. and Hastie, T. J. eds (1992) Statistical Models in S. Wadsworth & Brooks/Cole.

See Also

methods for methods of non-Internal generic functions.

Examples

methods("Math")
methods("Ops")
methods("Summary")

d.fr <- data.frame(x=1:9, y=rnorm(9))
data.class(1 + d.fr) == "data.frame" ##-- add to d.f. ...

[Package base version 1.5.0 ]