attributes               package:base               R Documentation

Object Attribute Lists

Description:

     These functions access an object's attributes. The first form
     below returns the object's attribute list. The replacement forms
     uses the list on the right-hand side of the assignment as the
     object's attributes (if appropriate).

Usage:

     attributes(obj)
     attributes(obj) <- value
     mostattributes(obj) <- value

Arguments:

     obj: an object

   value: an appropriate named list of attributes, or 'NULL'.

Details:

     Unlike 'attr' it is possible to set attributes on a 'NULL' object:
     it will first be coerced to an empty list.

     Note that some attributes (namely 'class', 'comment', 'dim',
     'dimnames', 'names', 'row.names' and 'tsp') are treated specially
     and have restrictions on the values which can be set.  (Note that
     this is not true of 'levels' which should be set for factors via
     the 'levels' replacement function.)

     Attributes are not stored internally as a list and should be
     thought of as a set and not a vector.  They must have unique names
     (and 'NA' is taken as '"NA"', not a missing value).

     Assigning attributes first removes all attributes, then sets any
     'dim' attribute and then the remaining attributes in the order
     given: this ensures that setting a 'dim' attribute always precedes
     the 'dimnames' attribute.

     The 'mostattributes' assignment takes special care for the 'dim',
     'names' and 'dimnames' attributes, and assigns them only when
     valid whereas an 'attributes' assignment would give an error if
     any are not.

     The names of a pairlist are not stored as attributes, but are
     reported as if they were (and can be set by the replacement method
     for attributes).

References:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

See Also:

     'attr'.

Examples:

     x <- cbind(a=1:3, pi=pi) # simple matrix w/ dimnames
     attributes(x)

     ## strip an object's attributes:
     attributes(x) <- NULL
     x # now just a vector of length 6

     mostattributes(x) <- list(mycomment = "really special", dim = 3:2,
        dimnames = list(LETTERS[1:3], letters[1:5]), names = paste(1:6))
     x # dim(), but not {dim}names

