Learn R Programming

spatstat.geom (version 3.2-8)

nnwhich.pp3: Nearest neighbours in three dimensions

Description

Finds the nearest neighbour of each point in a three-dimensional point pattern.

Usage

# S3 method for pp3
nnwhich(X, ..., k=1)

Value

Numeric vector or matrix giving, for each point, the index of its nearest neighbour (or kth nearest neighbour).

If k = 1 (the default), the return value is a numeric vector v giving the indices of the nearest neighbours (the nearest neighbout of the ith point is the jth point where j = v[i]).

If k is a single integer, then the return value is a numeric vector giving the indices of the

kth nearest neighbours.

If k is a vector, then the return value is a matrix m such that m[i,j] is the index of the k[j]th nearest neighbour for the

ith data point.

Arguments

X

Three-dimensional point pattern (object of class "pp3").

...

Ignored.

k

Integer, or integer vector. The algorithm will compute the distance to the kth nearest neighbour.

Warnings

A value of NA is returned if there is only one point in the point pattern.

Author

Adrian Baddeley Adrian.Baddeley@curtin.edu.au based on two-dimensional code by Pavel Grabarnik pavel.grabar@issp.serpukhov.su.

Details

For each point in the given three-dimensional 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 kth nearest neighbour.

The function nnwhich is generic. This is the method for the class "pp3".

If there are no points in the pattern, a numeric vector of length zero is returned. If there is only one point, 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.

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.

See Also

nnwhich, nndist, nncross

Examples

Run this code
if(require(spatstat.random)) {
   X <- runifpoint3(30)
} else {
   X <- osteo$pts[[1]]
}
   m <- nnwhich(X)
   m2 <- nnwhich(X, k=2)

Run the code above in your browser using DataLab