Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

treebranchlabels

Label Vertices of a Tree by Branch Membership


Description

Given a linear network which is a tree (acyclic graph), this function assigns a label to each vertex, indicating its position in the tree.

Usage

treebranchlabels(L, root = 1)

Arguments

L

Linear network (object of class "linnet"). The network must have no loops.

root

Root of the tree. An integer index identifying which point in vertices(L) is the root of the tree.

Details

The network L should be a tree, that is, it must have no loops.

This function computes a character string label for each vertex of the network L. The vertex identified by root (that is, vertices(L)[root]) is taken as the root of the tree and is given the empty label "".

  • If there are several line segments which meet at the root vertex, each of these segments is the start of a new branch of the tree; the other endpoints of these segments are assigned the labels "a", "b", "c" and so on.

  • If only one segment issues from the root vertex, the other endpoint of this segment is assigned the empty label "".

A similar rule is then applied to each of the newly-labelled vertices. If the vertex labelled "a" is joined to two other unlabelled vertices, these will be labelled "aa" and "ab". The rule is applied recursively until all vertices have been labelled.

If L is not a tree, the algorithm will terminate, but the results will be nonsense.

Value

A vector of character strings, with one entry for each point in vertices(L).

Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk

See Also

deletebranch, extractbranch, treeprune for manipulating a network using the branch labels.

linnet for creating a network.

Examples

# 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)

spatstat.linnet

Linear Networks Functionality of the 'spatstat' Family

v2.1-1
GPL (>= 2)
Authors
Adrian Baddeley [aut, cre], Rolf Turner [aut], Ege Rubak [aut], Ottmar Cronie [ctb], Tilman Davies [ctb], Greg McSwiggan [ctb], Suman Rakshit [ctb]
Initial release
2021-03-28

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.