High-level functions that improve the presentation of a matrix or data frame by reordering their rows and columns.
order.dist(x, index = FALSE)
order.matrix(x, type = "neumann", by = c("both","rows","cols"),
index = FALSE)
order.data.frame(x, type = "neumann", by = c("both","rows","cols"),
index = FALSE)
Either the reordered object supplied, or a vector of subscripts (for
reorder.dist
), or a list with components rows
and
columns
containing the order indexes (for reorder.matrix
and reorder.data.frame
).
an object of class dist
, matrix
, or
data.frame
.
the type of stress measure to use (see details).
option to order either by rows, or columns, or both.
option to return the order index(ex) instead of the reordered object.
Christian Buchta
These functions try to improve the presentation of an object of class
dist
, matrix
, ordata.frame
by reordering the rows
and columns such that similar entries are grouped together.
order.dist
uses a simple heuristic to solve the TSP problem of
finding an ordering of minimum length (see order.length
) for an
object of class dist
. Note that the heuristic used is quick but
more elaborate TSP algorithms will produce better orderings.
order.matrix
tries to minimize the stress measure of a matrix
(see stress
by using the same TSP heuristic as above, once for
the column and once for the row ordering (while the other dimension is
fixed) if by = "both"
.
order.data.frame
uses attributes of type numeric
and logical
only, combines them into a normalized matrix and
finds an ordering as above.
dist
, stress
, stress.dist
.
## not a hard problem
data(iris)
d <- dist(iris[1:4])
implot(order.dist(d))
data(townships)
x <- order.data.frame(townships)
x
Run the code above in your browser using DataLab