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 logical; if TRUE, nodes are plotted centered with respect to the leaves in the branch. Otherwise (default), plot them in the middle of all direct child nodes.
h height at which the tree is cut.
..., 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 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
total number of leaves in the branch
height
numeric non-negative height at which the node is plotted.
midpoint
numeric horizontal distance of the node from the left border of the branch. This is needed at least for plot(*, center=FALSE).
text
character; the label of the node
edgetext
character; the 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)
##  dend2$lower is *NOT* a dendrogram, but a list of .. :
plot(dend2$lower[[3]])

[Package Contents]