blob: ef016f40704c271620cd09d4870b173f7c4af2c5 [file] [log] [blame]
% File src/library/base/man/data.class.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{data.class}
\alias{data.class}
\title{Object Classes}
\description{
Determine the class of an arbitrary \R object.
}
\usage{
data.class(x)
}
\arguments{
\item{x}{an \R object.}
}
\value{
character string giving the \emph{class} of \code{x}.
The class is the (first element) of the \code{\link{class}}
attribute if this is non-\code{NULL}, or inferred from the object's
\code{dim} attribute if this is non-\code{NULL}, or \code{mode(x)}.
Simply speaking, \code{data.class(x)} returns what is typically useful
for method dispatching. (Or, what the basic creator functions already
and maybe eventually all will attach as a class attribute.)
}
\note{
For compatibility reasons, there is one exception to the rule above:
When \code{x} is \code{\link{integer}}, the result of
\code{data.class(x)} is \code{"numeric"} even when \code{x} is classed.
}
\seealso{
\code{\link{class}}
}
\examples{
x <- LETTERS
data.class(factor(x)) # has a class attribute
data.class(matrix(x, ncol = 13)) # has a dim attribute
data.class(list(x)) # the same as mode(x)
data.class(x) # the same as mode(x)
stopifnot(data.class(1:2) == "numeric") # compatibility "rule"
}
\keyword{classes}
\keyword{methods}