# treeprune

##### Prune Tree to Given Level

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

##### Usage

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

##### Arguments

- X
Object of class

`"linnet"`

or`"lpp"`

.- root
Index of the root vertex amongst the vertices of

`as.linnet(X)`

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

##### Details

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.

##### Value

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.

##### Examples

```
# NOT RUN {
# 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)
# }
```

*Documentation reproduced from package spatstat, version 1.55-1, License: GPL (>= 2)*