blob: 8815e52246272c0d0163766d1301e95098458b1e [file] [log] [blame]
% File src/library/base/man/attr.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{attr}
\alias{attr}
\alias{attr<-}
\title{Object Attributes}
\description{
Get or set specific attributes of an object.
}
\usage{
attr(x, which, exact = FALSE)
attr(x, which) <- value
}
\arguments{
\item{x}{an object whose attributes are to be accessed.}
\item{which}{a non-empty character string specifying which attribute
is to be accessed.}
\item{exact}{logical: should \code{which} be matched exactly?}
\item{value}{an object, the new value of the attribute, or \code{NULL}
to remove the attribute.}
}
\details{
These functions provide access to a single attribute of an object.
The replacement form causes the named attribute to take the value
specified (or create a new attribute with the value given).
The extraction function first looks for an exact match to \code{which}
amongst the attributes of \code{x}, then (unless \code{exact = TRUE})
a unique partial match.
(Setting \code{\link{options}(warnPartialMatchAttr = TRUE)} causes
partial matches to give warnings.)
The replacement function only uses exact matches.
Note that some attributes (namely \code{\link{class}},
\code{\link{comment}}, \code{\link{dim}}, \code{\link{dimnames}},
\code{\link{names}}, \code{\link{row.names}} and
\code{\link{tsp}}) are treated specially and have restrictions on
the values which can be set. (Note that this is not true of
\code{\link{levels}} which should be set for factors via the
\code{levels} replacement function.)
The extractor function allows (and does not match) empty and missing
values of \code{which}: the replacement function does not.
\code{\link{NULL}} objects cannot have attributes and attempting to
assign one by \code{attr} gives an error.
Both are \link{primitive} functions.
}
\value{
For the extractor, the value of the attribute matched, or \code{NULL}
if no exact match is found and no or more than one partial match is found.
}
\references{
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
\emph{The New S Language}.
Wadsworth & Brooks/Cole.
}
\seealso{
\code{\link{attributes}}
}
\examples{
# create a 2 by 5 matrix
x <- 1:10
attr(x,"dim") <- c(2, 5)
}
\keyword{attribute}