# rthin

##### Random Thinning

Applies independent random thinning to a point pattern.

##### Usage

`rthin(X, P, …, nsim=1, drop=TRUE)`

##### Arguments

- X
A point pattern (object of class

`"ppp"`

or`"lpp"`

) that will be thinned.- P
Data giving the retention probabilities, i.e. the probability that each point in

`X`

will be retained. Either a single number, or a vector of numbers, or a`function(x,y)`

in the R language, or a function object (class`"funxy"`

or`"linfun"`

), or a pixel image (object of class`"im"`

or`"linim"`

).- …
Additional arguments passed to

`P`

, if it is a function.- nsim
Number of simulated realisations to be generated.

- drop
Logical. If

`nsim=1`

and`drop=TRUE`

(the default), the result will be a point pattern, rather than a list containing a point pattern.

##### Details

In a random thinning operation, each point of the pattern `X`

is randomly either deleted or retained (i.e. not deleted).
The result is a point pattern,
consisting of those points of `X`

that were retained.

Independent random thinning means that the retention/deletion of each point is independent of other points.

The argument `P`

determines the probability of **retaining**
each point. It may be

- a single number,
so that each point will be retained with the same probability

`P`

;- a vector of numbers,
so that the

`i`

th point of`X`

will be retained with probability`P[i]`

;- a function
`P(x,y)`

, so that a point at a location

`(x,y)`

will be retained with probability`P(x,y)`

;- an object of class
`"funxy"`

or`"linfun"`

, so that points in the pattern

`X`

will be retained with probabilities`P(X)`

;- a pixel image,
containing values of the retention probability for all locations in a region encompassing the point pattern.

If `P`

is a function `P(x,y)`

,
it should be ‘vectorised’, that is,
it should accept vector arguments `x,y`

and should yield a
numeric vector of the same length. The function may have extra
arguments which are passed through the `…`

argument.

##### Value

A point pattern (object of class `"ppp"`

or `"lpp"`

)
if `nsim=1`

, or a list of point patterns if `nsim > 1`

.

##### Reproducibility

The algorithm for random thinning was changed in spatstat
version `1.42-3`

. Set `spatstat.options(fastthin=FALSE)`

to use the previous, slower algorithm, if it is desired to reproduce
results obtained with earlier versions.

##### Examples

```
# NOT RUN {
plot(redwood, main="thinning")
# delete 20% of points
Y <- rthin(redwood, 0.8)
points(Y, col="green", cex=1.4)
# function
f <- function(x,y) { ifelse(x < 0.4, 1, 0.5) }
Y <- rthin(redwood, f)
# pixel image
Z <- as.im(f, Window(redwood))
Y <- rthin(redwood, Z)
# pattern on a linear network
A <- runiflpp(30, simplenet)
B <- rthin(A, 0.2)
g <- function(x,y,seg,tp) { ifelse(y < 0.4, 1, 0.5) }
B <- rthin(A, linfun(g, simplenet))
# }
```

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