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

nleaves(x, ...)

# Default S3 method
nleaves(x, ...)

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

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

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

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

Arguments

x

tree object (dendrogram/hclust/phylo,dendlist)

...

not used

method

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".

Value

The number of leaves in the tree

Details

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.

Examples

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

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