# count_terminal_nodes: Counts the number of terminal nodes (merging 0 nodes!) In dendextend: Extending 'dendrogram' Functionality in R

## Description

This function counts the number of "practical" terminal nodes (nodes which are not leaves, but has 0 height to them are considered "terminal" nodes). If the tree is standard, that would simply be the number of leaves (only the leaves will have height 0). However, in cases where the tree has several nodes (before the leaves) with 0 height, the count_terminal_nodes counts such nodes as terminal nodes

The function is recursive in that it either returns 1 if it reached a terminal node (either a leaf or a 0 height node), else: it will count the number of terminal nodes in each of its sub-nodes, sum them up, and return them.

## Usage

 `1` ```count_terminal_nodes(dend_node, ...) ```

## Arguments

 `dend_node` a dendrogram object for which to count its number of terminal nodes (leaves or 0 height nodes). `...` not used

## Value

The number of terminal nodes (excluding the leaves of nodes of height 0)

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22``` ```# define dendrogram object to play with: hc <- hclust(dist(USArrests[1:3, ]), "ave") dend <- as.dendrogram(hc) ### # Trivial case count_terminal_nodes(dend) # 3 terminal nodes length(labels(dend)) # 3 - the same number plot(dend, main = "This is considered a tree \n with THREE terminal nodes (leaves)" ) ### # NON-Trivial case str(dend) attr(dend[], "height") <- 0 count_terminal_nodes(dend) # 2 terminal nodes, why? see this plot: plot(dend, main = "This is considered a tree \n with TWO terminal nodes only" ) # while we have 3 leaves, in practice we have only 2 terminal nodes # (this is a feature, not a bug.) ```

### Example output  ```---------------------
Welcome to dendextend version 1.12.0
Type citation('dendextend') for how to cite the package.

Type browseVignettes(package = 'dendextend') for the package vignette.
The github page is: https://github.com/talgalili/dendextend/

Suggestions and bug-reports can be submitted at: https://github.com/talgalili/dendextend/issues
Or contact: <tal.galili@gmail.com>

To suppress this message use:  suppressPackageStartupMessages(library(dendextend))
---------------------

Attaching package: 'dendextend'

The following object is masked from 'package:stats':

cutree

 3
 3
--[dendrogram w/ 2 branches and 3 members at h = 54.8]
|--leaf "Arizona"
`--[dendrogram w/ 2 branches and 2 members at h = 37.2]
|--leaf "Alabama"