Counts the number of leaves in a tree (dendrogram or hclust).

nleaves(x, ...)

# S3 method for default
nleaves(x, ...)

# S3 method for dendrogram
nleaves(x, method = c("members", "order"), ...)

# S3 method for dendlist
nleaves(x, ...)

# S3 method for hclust
nleaves(x, ...)

# S3 method for phylo
nleaves(x, ...)



tree object (dendrogram/hclust/phylo,dendlist)


not used


a character scalar (default is "members"). If "order" than nleaves is based on length of order.dendrogram. If "members", than length is trusting what is written in the dendrogram's root attr. "members" is about 4 times faster than "order".


The number of leaves in the tree


The idea for the name is from functions like ncol, and nrow.

Also, it is worth noting that the nleaves.dendrogram is based on order.dendrogram instead of labels.dendrogram since the first is MUCH faster than the later.

The phylo method is based on turning the phylo to hclust and than to dendrogram. It may not work for complex phylo trees.


hc <- hclust(dist(USArrests[1:5, ]), "ave")
dend <- as.dendrogram(hc)

nleaves(dend) # 5
#> [1] 5
nleaves(hc) # 5
#> [1] 5