Nearest neighbour distances
Computes the distance from each point to its nearest neighbour in a point pattern.
nndist(X, ..., method="C") ## S3 method for class 'ppp': nndist(X, \dots, method="C") ## S3 method for class 'default': nndist(X, Y=NULL, \dots, method="C")
- Arguments specifying the locations of
a set of points.
nndist.ppp, the argument
Xshould be a point pattern (object of class
- Ignored by
- String specifying which method of calculation to use.
This function computes the Euclidean distance from each point in a point pattern to its nearest neighbour (the nearest other point of the pattern).
nndist is generic, with
a method for point patterns (objects of class
and a default method.
The method for point patterns expects a single
point pattern argument
X and returns the vector of its
nearest neighbour distances.
The default method expects that
Y will determine
the coordinates of a set of points. Typically
Y would be numeric vectors of equal length. Alternatively
Y may be omitted and
X may be a list with two components
y, or a matrix or data frame with two columns.
method is not normally used. It is
retained only for checking the validity of the software.
method = "interpreted" then the distances are
computed using interpreted R code only. If
(the default) then C code is used.
The C code is faster by two to three orders of magnitude
and uses much less memory.
If there is only one point (if
x has length 1),
then a nearest neighbour distance of
Inf is returned.
If there are no points (if
x has length zero)
a numeric vector of length zero is returned.
To identify which point is the nearest neighbour of a given point,
To use the nearest neighbour distances for statistical inference,
it is often advisable to use the edge-corrected empirical distribution,
To find the nearest neighbour distances from one point pattern
to another point pattern, use
- Numeric vector of the nearest neighbour distances for each point.
An infinite value is returned if there is only one point in the point pattern.
data(cells) d <- nndist(cells) x <- runif(100) y <- runif(100) d <- nndist(x, y) # Stienen diagram plot(cells %mark% (nndist(cells)/2), markscale=1)