cutree: Cut a Tree into Groups of Data

cutreeR Documentation

Cut a Tree into Groups of Data


Cuts a tree, e.g., as resulting from hclust, into several groups either by specifying the desired number(s) of groups or the cut height(s).


cutree(tree, k = NULL, h = NULL)



a tree as produced by hclust. cutree() only expects a list with components merge, height, and labels, of appropriate content each.


an integer scalar or vector with the desired number of groups


numeric scalar or vector with heights where the tree should be cut.

At least one of k or h must be specified, k overrides h if both are given.


Cutting trees at a given height is only possible for ultrametric trees (with monotone clustering heights).


cutree returns a vector with group memberships if k or h are scalar, otherwise a matrix with group memberships is returned where each column corresponds to the elements of k or h, respectively (which are also used as column names).


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

hclust, dendrogram for cutting trees themselves.


hc <- hclust(dist(USArrests))

cutree(hc, k = 1:5) #k = 1 is trivial
cutree(hc, h = 250)

## Compare the 2 and 4 grouping:
g24 <- cutree(hc, k = c(2,4))
table(grp2 = g24[,"2"], grp4 = g24[,"4"])