treeprune: Prune Tree to Given Level

View source: R/treebranches.R

treepruneR Documentation

Prune Tree to Given Level


Prune a tree by removing all the branches above a given level.


treeprune(X, root = 1, level = 0)



Object of class "linnet" or "lpp".


Index of the root vertex amongst the vertices of as.linnet(X).


Integer specifying the level above which the tree should be pruned.


The object X must be either a linear network, or a derived object such as a point pattern on a linear network. The linear network must be an acyclic graph (i.e. must not contain any loops) so that it can be interpreted as a tree.

This function removes all vertices for which treebranchlabels gives a string more than level characters long.


Object of the same kind as X.



See Also

treebranchlabels for calculating the branch labels.

deletebranch for removing entire branches. extractbranch for extracting entire branches.

linnet for creating networks.


  # make a simple tree
  m <- simplenet$m
  m[8,10] <- m[10,8] <- FALSE
  L <- linnet(vertices(simplenet), m)
  plot(L, main="")
  # compute branch labels 
  tb <- treebranchlabels(L, 1)
  tbc <- paste0("[", tb, "]")
  text(vertices(L), labels=tbc, cex=2)
  # prune tree 
  tp <- treeprune(L, root=1, 1)
  plot(tp, add=TRUE, col="blue", lwd=3)

spatstat.linnet documentation built on March 18, 2022, 6:40 p.m.