nndist.ppx | R Documentation |
Computes the distance from each point to its nearest neighbour in a multi-dimensional point pattern. Alternatively computes the distance to the second nearest neighbour, or third nearest, etc.
## S3 method for class 'ppx'
nndist(X, ..., k=1, by=NULL)
X |
Multi-dimensional point pattern
(object of class |
... |
Arguments passed to |
k |
Integer, or integer vector. The algorithm will compute the distance to the
|
by |
Optional. A factor, which separates |
This function computes the Euclidean distance from each point
in a multi-dimensional
point pattern to its nearest neighbour (the nearest other
point of the pattern). If k
is specified, it computes the
distance to the k
th nearest neighbour.
The function nndist
is generic; this function
nndist.ppx
is the method for the class "ppx"
.
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 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.
If the argument by
is given, it should be a factor
,
of length equal to the number of points in X
.
This factor effectively partitions X
into subsets,
each subset associated with one of the levels of X
.
The algorithm will then compute, for each point of X
,
the distance to the nearest neighbour in each subset.
To identify which point is the nearest neighbour of a given point,
use nnwhich
.
To find the nearest neighbour distances from one point pattern
to another point pattern, use nncross
.
By default, both spatial and temporal coordinates are extracted.
To obtain the spatial distance between points in a space-time point
pattern, set temporal=FALSE
.
Numeric vector or matrix containing the nearest neighbour distances for each point.
If k = 1
(the default), the return value is a
numeric vector v
such that v[i]
is the
nearest neighbour distance for the i
th data point.
If k
is a single integer, then the return value is a
numeric vector v
such that v[i]
is the
k
th nearest neighbour distance for the
i
th data point.
If k
is a vector, then the return value is a
matrix m
such that m[i,j]
is the
k[j]
th nearest neighbour distance for the
i
th data point.
The values returned by nndist(X)
are distances,
expressed as multiples of the unit of length of the spatial
coordinates in X
.
The unit of length is given by unitname(X)
.
Note that, if the unit of length in X
is a composite
expression such as ‘2 microns’,
then the values of nndist(X)
are expressed as multiples
of 2 microns, rather than being expressed in microns.
An infinite or NA
value is returned if the
distance is not defined (e.g. if there is only one point
in the point pattern).
nndist
,
pairdist
,
nnwhich
df <- data.frame(x=runif(5),y=runif(5),z=runif(5),w=runif(5))
X <- ppx(data=df)
# nearest neighbours
d <- nndist(X)
# second nearest neighbours
d2 <- nndist(X, k=2)
# first, second and third nearest
d1to3 <- nndist(X, k=1:3)
# nearest neighbour distances to each group
marks(X) <- factor(c("a","a", "b", "b", "b"))
nndist(X, by=marks(X))
nndist(X, by=marks(X), k=1:2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.