dist {mva} | R Documentation

## Distance Matrix Computation

### Description

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.

### Usage

    dist(x, method = "euclidean", diag = FALSE, upper = FALSE)

    print.dist(x, diag = NULL, upper = NULL, ...)
    as.matrix.dist(x)
    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 matrix of distances to be converted to a `"dist"` object (only the lower triangle is used, the rest is ignored).
`...` | further arguments, passed to the (next) `print` method.

### 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|)
`binary`:
  (aka asymmetric binary): 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

An object of class `"dist"`.
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., Kent, J. T. and Bibby, J. M. (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))
    d <- as.dist(m)
    print(d, digits = 3)