attributes {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 |
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