## Distance Matrix Computation

## Usage

    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)

## Arguments

`x` | A matrix or (data frame). Distances between the rows of `x` will be computed.
`method` | The distance measure to be used. This must be one of `"euclidean"`, `"maximum"`, `"manhattan"`, `"canberra"` or `"binary"`. Any unambiguous substring can be given.
`diag` | A logical value indicating whether the diagonal of the distance matrix should be printed by `print.dist`.
`upper` | A logical value indicating whether the upper triangle of the distance matrix should be printed by `print.dist`.
`m` | A distance matrix to be converted to a dist object (only lower triangle is used, the rest is ignored).

## Description

This function computes and returns the distance matrix computed by using the specified distance measure to compute the distances between the rows of `x`.

## Details

Available distance measures are (written for two vectors x and y):

- Euclidean: Usual square distance between the two vectors (2 norm).
- Maximum: Maximum distance between two components of x and y (supremum norm)
- Manhattan: Absolute distance between the two vectors (1 norm).
- Canberra: sum(|x_i - y_i| / |x_i + y_i|)
- Count the number of different bits in x and y where at least one of the two bits is 1, i.e., components where both bits are zero are ignored.

The functions `as.matrix.dist()` and `as.dist()` can be used for conversion between objects of class `"dist"` and conventional distance matrices and vice versa.

## Value

The lower triangle of the distance matrix stored by columns in a single vector. The vector has the attributes `"Size"`, `"Diag"`, `"Upper"`, `"Labels"` and `"class"` equal to `"dist"`.

## References

Mardia, K. V., J. T. Kent and J. M. Bibby (1979). Multivariate Analysis, London: Academic Press.

## See Also

`hclust`.

## Examples

    x <- matrix(rnorm(100),nrow=5)
    dist(x)
    dist(x, diag = TRUE)
    dist(x, upper = TRUE)
    m <- as.matrix(dist(x))
    as.dist(m)

[Package Contents]