Learn R Programming

ape (version 5.8)

collapse.singles: Collapse Single Nodes

Description

collapse.singles deletes the single nodes (i.e., with a single descendant) in a tree.

has.singles tests for the presence of single node(s) in a tree.

Usage

collapse.singles(tree, root.edge = FALSE)
has.singles(tree)

Value

an object of class "phylo".

Arguments

tree

an object of class "phylo".

root.edge

whether to get the singleton edges from the root until the first bifurcating node and put them as root.edge of the returned tree. By default, this is ignored or if the tree has no edge lengths (see examples).

Author

Emmanuel Paradis, Klaus Schliep

See Also

plot.phylo, read.tree

Examples

Run this code
## a tree with 3 tips and 3 nodes:
e <- c(4L, 6L, 6L, 5L, 5L, 6L, 1L, 5L, 3L, 2L)
dim(e) <- c(5, 2)
tr <- structure(list(edge = e, tip.label = LETTERS[1:3], Nnode = 3L),
                class = "phylo")
tr
has.singles(tr)
## the following shows that node #4 (ie, the root) is a singleton
## and node #6 is the first bifurcating node
tr$edge
## A bifurcating tree has less nodes than it has tips:
## the following used to fail with ape 4.1 or lower:
plot(tr)
collapse.singles(tr) # only 2 nodes
## give branch lengths to use the 'root.edge' option:
tr$edge.length <- runif(5)
str(collapse.singles(tr, TRUE)) # has a 'root.edge'

Run the code above in your browser using DataLab