# thinNetwork

##### Remove Vertices or Segments from a Linear Network

Delete some vertices and/or segments from a linear network or related object.

##### Usage

`thinNetwork(X, retainvertices, retainedges)`

##### Arguments

- X
A linear network (object of class

`"linnet"`

), or a point pattern on a linear network (object of class`"lpp"`

).- retainvertices
Optional. Subset index specifying which vertices should be retained (not deleted).

- retainedges
Optional. Subset index specifying which edges (segments) should be retained (not deleted).

##### Details

This function deletes some of the vertices and edges (segments) in the linear network.

The arguments `retainvertices`

and `retainedges`

can be
any kind of subset index: a vector of positive integers specifying which
vertices/edges should be retained; a vector of negative integers
specifying which vertices/edges should be deleted; or a logical vector
specifying whether each vertex/edge should be retained (`TRUE`

)
or deleted (`FALSE`

).

Vertices are indexed in the same sequence as in
`vertices(as.linnet(X))`

.
Segments are indexed in the same sequence as in
`as.psp(as.linnet(X))`

.

The argument `retainedges`

has higher precedence than
`retainvertices`

in the sense that:

If

`retainedges`

is given, then any vertex which is an endpoint of a retained edge will also be retained.If

`retainvertices`

is given and`retainedges`

is**missing**, then any segment joining two retained vertices will also be retained.Thus, when both

`retainvertices`

and`retainedges`

are given, it is possible that more vertices will be retained than those specified by`retainvertices`

.

After the network has been altered, other consequential changes will
occur, including renumbering of the segments and vertices.
If `X`

is a point pattern on a linear network, then data points
will be deleted if they lie on a deleted edge.

##### Value

An object of the same kind as `X`

.

##### See Also

`linnet`

to make a network;

`connected.linnet`

to extract connected components.

##### Examples

```
# NOT RUN {
L <- simplenet
plot(L, main="thinNetwork(L, retainedges=c(-3, -5))")
text(midpoints.psp(as.psp(L)), labels=1:nsegments(L), pos=3)
Lsub <- thinNetwork(L, retainedges=c(-3, -5))
plot(Lsub, add=TRUE, col="blue", lwd=2)
# }
```

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