\Header{dist}{Distance Matrix Computation}
\alias{print.dist}{dist}
\alias{as.matrix.dist}{dist}
\alias{names.dist}{dist}
\alias{names$\leftarrow $.dist}{dist}
\alias{as.dist}{dist}
\keyword{multivariate}{dist}
\keyword{cluster}{dist}
\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[\texttt{x}] A matrix or (data frame).  Distances between the rows of
\texttt{x} will be computed.
\item[\texttt{method}] The distance measure to be used. This must be one of
\texttt{"euclidean"}, \texttt{"maximum"}, \texttt{"manhattan"}, 
\texttt{"canberra"} or \texttt{"binary"}.
Any unambiguous substring can be given.
\item[\texttt{diag}] A logical value indicating whether the diagonal of the
distance matrix should be printed by \texttt{print.dist}.
\item[\texttt{upper}] A logical value indicating whether the upper triangle of the
distance matrix should be printed by \texttt{print.dist}.
\item[\texttt{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{Description}
This function computes and returns the distance matrix computed by
using the specified distance measure to compute the distances between
the rows of \texttt{x}.\end{Description}
\begin{Details}
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 \texttt{as.matrix.dist()} and \texttt{as.dist()} can be used
for conversion between objects of class \texttt{"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 \texttt{"Size"},
\texttt{"Diag"}, \texttt{"Upper"}, \texttt{"Labels"} and \texttt{"class"} equal
to \texttt{"dist"}.\end{Value}
\begin{References}
Mardia, K. V., J. T. Kent and J. M. Bibby (1979).
\emph{Multivariate Analysis}, London: Academic Press.\end{References}
\begin{SeeAlso}
\texttt{\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}

