\Header{dist}{Distance Matrix Computation}
\alias{as.dist}{dist}
\alias{as.matrix.dist}{dist}
\alias{names.dist}{dist}
\alias{names<\Rdash.dist}{dist}
\alias{print.dist}{dist}
\keyword{multivariate}{dist}
\keyword{cluster}{dist}
\begin{Description}\relax
This function computes and returns the distance matrix computed by
using the specified distance measure to compute the distances between
the rows of a data matrix.\end{Description}
\begin{Usage}
\begin{verbatim}
dist(x, method = "euclidean", diag = FALSE, upper = FALSE)

print.dist(dist.obj, diag = NULL, upper = NULL)
as.matrix.dist(dist.obj)
as.dist(m, diag = NULL, upper = NULL)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] A matrix or (data frame).  Distances between the rows of
\code{x} will be computed.
\item[\code{method}] The distance measure to be used. This must be one of
\code{"euclidean"}, \code{"maximum"}, \code{"manhattan"}, 
\code{"canberra"} or \code{"binary"}.
Any unambiguous substring can be given.
\item[\code{diag}] A logical value indicating whether the diagonal of the
distance matrix should be printed by \code{print.dist}.
\item[\code{upper}] A logical value indicating whether the upper triangle of the
distance matrix should be printed by \code{print.dist}.
\item[\code{m}] A distance matrix to be converted to a dist object (only
lower triangle is used, the rest is ignored).
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Available distance measures are (written for two vectors \eqn{x}{} and
\eqn{y}{}): 
\Itemize{
\item Euclidean: Usual square distance between the two vectors (2 norm).
\item Maximum: Maximum distance between two components of \eqn{x}{}
and \eqn{y}{} (supremum norm)
\item Manhattan: Absolute distance between the two vectors (1
norm).
\item Canberra: \eqn{\sum_i |x_i - y_i| / |x_i + y_i|}{sum(|x_i - y_i| / |x_i + y_i|)}
\item Count the number of different bits in \eqn{x}{} and \eqn{y}{}
where at least one of the two bits is 1, i.e., components where both
bits are zero are ignored.
}

The functions \code{as.matrix.dist()} and \code{as.dist()} can be used
for conversion between objects of class \code{"dist"} and conventional
distance matrices and vice versa.\end{Details}
\begin{Value}
The lower triangle of the distance matrix stored by columns in a
single vector.  The vector has the attributes \code{"Size"},
\code{"Diag"}, \code{"Upper"}, \code{"Labels"} and \code{"class"} equal
to \code{"dist"}.\end{Value}
\begin{References}\relax
Mardia, K. V., J. T. Kent and J. M. Bibby (1979).
\emph{Multivariate Analysis}, London: Academic Press.\end{References}
\begin{SeeAlso}\relax
\code{\Link{hclust}}.\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
x <- matrix(rnorm(100),nrow=5)
dist(x)
dist(x, diag = TRUE)
dist(x, upper = TRUE)
m <- as.matrix(dist(x))
as.dist(m)
\end{ExampleCode}
\end{Examples}

