R: Nearest neighbor search.

matchpt {Biobase} | R Documentation

## Nearest neighbor search.

### Description

Find the nearest neighbors of a set of query points in the same or another set of points in an n-dimensional real vector space, using the Euclidean distance.

### Usage

        matchpt(x, y)

### Arguments

`x` | A matrix (or vector) of coordinates. Each row represents a point in an `ncol(x)`-dimensional real vector space.
`y` | Optional, matrix (or vector) with the same number of columns as `x`.

### Details

If `y` is provided, the function searches for each point in `x` its nearest neighbor in `y`. If `y` is missing, it searches for each point in `x` its nearest neighbor in `x`, excluding that point itself. In the case of ties, only the neighbor with the smaller index is given.

The implementation is simple and of complexity `nrow(x)` times `nrow(y)`. For larger problems, please consider one of the many more efficient nearest neighbor search algorithms.

### Value

A `data.frame` with two columns and `nrow(x)` rows. The first column is the index of the nearest neighbor, the second column the distance to the nearest neighbor. If `y` was given, the index is a row number in `y`, otherwise, in `x`. The row names of the result are those of `x`.

### Author(s)

Oleg Sklyar osklyar@ebi.ac.uk

### Examples

        a <- matrix(c(2,2,3,5,1,8,-1,4,5,6), ncol=2L, nrow=5L)
        rownames(a) = LETTERS[seq_len(nrow(a))]
        matchpt(a)
        b <- c(1,2,4,5,6)
        d <- c(5.3, 3.2, 8.9, 1.3, 5.6, -6, 4.45, 3.32)
        matchpt(b, d)
        matchpt(d, b)

[Package Biobase version 2.8.0 Index]