dendrogram {mva}R Documentation

General Tree Structures

Description

Class "dendrogram" provides general functions for handling tree-like structures. It is intended as a replacement for similar functions in hierarchical clustering and classification/regression trees, such that all of these can use the same engine for plotting or cutting trees. Currently the code is in alpha stage and the API may change at any point in time.

Usage

plot(x, type=c("rectangle", "triangle"),
                center=FALSE, xlab="", ylab="", ...)
cut(x, h, ...)

Arguments

x Object of class "dendrogram".
type Type of plot.
center If TRUE, nodes are plotted centered with respect to the leaves in the branch. Default is to plot them in the middle of all direct child nodes.
h Height at which the tree is cutted.
..., xlab, ylab graphical parameters, or arguments for other methods.

Details

Warning: This documentation is preliminary.

The dendrogram is directly represented as a nested list, where each list component corresponds to a branch of the tree. Hence, the first branch of tree z is z[[1]], the second branch of the corresponding subtree is z[[1]][[2]] etc.. Each node of the tree carries some information needed for efficient plotting or cutting as attributes:

members
number of leaves in the branch
height
Height at which the node is plotted
midpoint
Horizontal distance of the node from the left border of the branch
text
Text label of the node
edgetext
Text label for the edge leading to the node

Terminal nodes (leaves of the tree) can have arbitrary value but must not be a list.

cut.dendrogram() returns a list with components $upper and $lower, the first is a truncated version of the original tree, also of class dendrogram, the latter a list with the branches obtained from cutting the tree, each a dendrogram.

Objects of class "hclust" can be converted to class "dendrogram" using method as.dendrogram.

plotNode() and plotNodeLimit() are helper functions.

Examples

library(mva)
data(USArrests)
hc <- hclust(dist(USArrests), "ave")
str(dend1 <- as.dendrogram(hc))
plot(dend1)
dend2 <- cut(dend1, h=70)
plot(dend2$upper)
plot(dend2$lower[[3]])

[Package Contents]