Compute the nearest neighbour index map of an object, and return it as a function.
nnfun(X, ...) # S3 method for ppp
nnfun(X, ..., k=1, value=c("index", "mark"))
# S3 method for psp
nnfun(X, ..., value=c("index", "mark"))
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"
).
A single integer. The k
th nearest neighbour will be found.
Extra arguments are ignored.
String (partially matched) specifying whether to return the
index of the neighbour (value="index"
, the default)
or the mark value of the neighbour (value="mark"
).
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
.
For a collection f(x,y)
is the index
The command f <- nnfun(X)
returns a function
in the R language, 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
.
# NOT RUN {
f <- nnfun(cells)
f
plot(f)
f(0.2, 0.3)
g <- nnfun(cells, k=2)
g(0.2, 0.3)
plot(nnfun(amacrine, value="m"))
L <- psp(runif(10), runif(10), runif(10), runif(10), window=owin())
h <- nnfun(L)
h(0.2, 0.3)
# }
Run the code above in your browser using DataLab