dist {mva} | R Documentation |
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.
dist(x, method = "euclidean", diag = FALSE, upper = FALSE) print.dist(x, diag = NULL, upper = NULL, ...) as.matrix.dist(x) as.dist(m, diag = FALSE, upper = FALSE)
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. |
Available distance measures are (written for two vectors x and y):
euclidean
:maximum
:manhattan
:canberra
:binary
:
Missing values are allowed, and are excluded from all computations
involving the rows within which they occur. If some columns are
excluded in calculating a Euclidean, Manhattan or Canberra distance,
the sum is scaled up proportionally to the number of columns used.
If all pairs are excluded when calculating a particular distance,
the value is NA
.
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.
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"
.
Mardia, K. V., Kent, J. T. and Bibby, J. M. (1979) Multivariate Analysis. London: Academic Press.
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) stopifnot(d == dist(x)) names(d) <- LETTERS[1:5] print(d, digits = 3) ## example of binary and canberra distances. x <- c(0, 0, 1, 1, 1, 1) y <- c(1, 0, 1, 1, 0, 1) dist(rbind(x,y), method="binary") ## answer 0.4 = 2/5 dist(rbind(x,y), method="canberra") ## answer 2 * (6/5)