class                  package:base                  R Documentation

Object Classes

Description:

     R possesses a simple generic function mechanism which can be used
     for an object-oriented style of programming.  Method despatch
     takes place based on the class of the first argument to the
     generic function.

Usage:

     class(x)
     class(x) <- names
     unclass(x)
     inherits(x, what, which = FALSE)

Arguments:

       x: an objects

    what: a character vector naming classes.

   which: logical affecting return value: see Details.

Details:

     An R ``object'' is a data object which has a `class' attribute. A
     class attribute is a character vector 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, applies 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 an
     object inherits from.  Correspondingly, `class<-' sets the classes
     an object inherits from.

     `unclass' returns (a copy of) its argument with its class
     information removed.

     `inherits' indicates whether its first argument inherits from any
     of the classes specified in the `what' argument.  If `which' is
     `TRUE' then an integer vector of the same length as `what' is
     returned. Each element indicates the position in the `class(x)'
     matched by the element of `what'; zero indicates no match. If
     `which' is `FALSE' then `TRUE' is  returned by `inherits' if any
     of the names in `what' match with any `class'.

See Also:

     `UseMethod', `NextMethod'.

Examples:

       x <- 10
       inherits(x, "a") #FALSE
       class(x)<-c("a", "b")
       inherits(x,"a") #TRUE
       inherits(x, "a", TRUE) # 1
       inherits(x, c("a", "b", "c"), TRUE) # 1 2 0

