# nnfun

##### Nearest Neighbour Index Map as a Function

Compute the nearest neighbour index map of an object, and return it as a function.

##### Usage

`nnfun(X, ...)` ## S3 method for class 'ppp':
nnfun(X, ..., k=1)

## S3 method for class 'psp':
nnfun(X, ...)

##### Arguments

- X
- Any suitable dataset representing a two-dimensional
collection of objects,
such as a point pattern (object of class
`"ppp"`

) or a line segment pattern (object of class`"psp"`

). - k
- A single integer. The
`k`

th nearest neighbour will be found. - ...
- Extra arguments are ignored.

##### Details

For a collection $X$ of two dimensional objects
(such as a point pattern or a line segment pattern),
the `f(x,y)`

is the index $i$ identifying the closest member of $X$.
That is, if $i = f(x,y)$ then $X[i]$ is the closest member of
the collection $X$ to the location $(x,y)$.
The command `f <- nnfun(X)`

returns a *function*
in the Rlanguage, with arguments `x,y`

, that represents the
nearest neighbour index function of `X`

. Evaluating the function `f`

in the form `v <- f(x,y)`

, where `x`

and `y`

are any numeric vectors of equal length containing coordinates of
spatial locations, yields the indices of the nearest neighbours
to these locations.

If the argument `k`

is specified then the `k`

-th nearest
neighbour will be found.

The result of `f <- nnfun(X)`

also belongs to the class
`"funxy"`

and to the special class `"nnfun"`

.
It can be printed and plotted immediately as shown in the Examples.
A `nnfun`

object can be converted to a pixel image
using `as.im`

.

##### Value

- A
`function`

with arguments`x,y`

. The function also belongs to the class`"nnfun"`

which has a method for`print`

. It also belongs to the class`"funxy"`

which has methods for`plot`

,`contour`

and`persp`

.

##### See Also

##### Examples

```
f <- nnfun(cells)
f
plot(f)
f(0.2, 0.3)
g <- nnfun(cells, k=2)
g(0.2, 0.3)
L <- psp(runif(10), runif(10), runif(10), runif(10), window=owin())
h <- nnfun(L)
h(0.2, 0.3)
```

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