R: Minimum spanning tree

MSTEdges {TreeTools} | R Documentation

## Minimum spanning tree

### Description

Calculate or plot the minimum spanning tree of a distance matrix.

### Usage

    MSTEdges(distances, plot = FALSE, x = NULL, y = NULL, ...)

    MSTLength(distances, mst = NULL)

### Arguments

`distances` | Either a matrix that can be interpreted as a distance matrix, or an object of class `dist`.
`plot` | Logical specifying whether to add the minimum spanning tree to an existing plot.
`x, y` | Numeric vectors specifying the X and Y coordinates of each element in `distances`. Necessary only if `plot = TRUE`.
`...` | Additional parameters to send to `[lines()]`.
`mst` | Optional parameter specifying the minimum spanning tree in the format returned by `MSTEdges()`; if `NULL`, calculated from `distances`.

### Value

`MSTEdges()` returns a matrix in which each row corresponds to an edge of the minimum spanning tree, listed in non-decreasing order of length. The two columns contain the indices of the entries in `distances` that each edge connects, with the lower value listed first.

`MSTLength()` returns the length of the minimum spanning tree.

### Author(s)

Martin R. Smith (martin.smith@durham.ac.uk)

### References

Gower JC, Ross GJS (1969). “Minimum spanning trees and single linkage cluster analysis.” Journal of the Royal Statistical Society. Series C (Applied Statistics), 18(1), 54–64. doi: 10.2307/2346439, https://doi.org/10.2307/2346439.

### See Also

Slow implementation returning the association matrix of the minimum spanning tree: `ape::mst()`.

### Examples

    # Corners of an almost-regular octahedron
    points <- matrix(c(0, 0, 2, 2, 1.1, 1,
                       0, 2, 0, 2, 1, 1.1,
                       0, 0, 0, 0, 1, -1), 6)
    distances <- dist(points)
    mst <- MSTEdges(distances)
    MSTLength(distances, mst)
    plot(points[, 1:2], ann = FALSE, asp = 1)
    MSTEdges(distances, TRUE, x = points[, 1], y = points[, 2], lwd = 2)

[Package TreeTools version 1.4.4 Index]