For each point in the given point pattern, this function finds
its nearest neighbour (the nearest other point of the pattern).
By default it returns a vector giving, for each point,
the index of the point's
nearest neighbour. If k
is specified, the algorithm finds
each point's k
th nearest neighbour. The function nnwhich
is generic, with
method for point patterns (objects of class "ppp"
)
and a default method which are described here, as well as a method for
three-dimensional point patterns (objects of class "pp3"
,
described in nnwhich.pp3
.
The method nnwhich.ppp
expects a single
point pattern argument X
.
The default method expects that X
and Y
will determine
the coordinates of a set of points. Typically X
and
Y
would be numeric vectors of equal length. Alternatively
Y
may be omitted and X
may be a list with two components
named x
and y
, or a matrix or data frame with two columns.
The argument k
may be a single integer, or an integer vector.
If it is a vector, then the $k$th nearest neighbour distances are
computed for each value of $k$ specified in the vector.
If there are no points (if x
has length zero)
a numeric vector of length zero is returned.
If there is only one point (if x
has length 1),
then the nearest neighbour is undefined, and a value of NA
is returned. In general if the number of points is less than or equal
to k
, then a vector of NA
's is returned.
The argument method
is not normally used. It is
retained only for checking the validity of the software.
If method = "interpreted"
then the distances are
computed using interpreted R code only. If method="C"
(the default) then C code is used.
The C code is faster by two to three orders of magnitude
and uses much less memory.
To evaluate the distance between a point and its nearest
neighbour, use nndist
.
To find the nearest neighbours from one point pattern
to another point pattern, use nncross
.