# matchpt: Nearest neighbor search. In Biobase: Biobase: Base functions for Bioconductor

## 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

 `1` ``` 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

 ```1 2 3 4 5 6 7``` ``` 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) ```

### Example output

```Loading required package: BiocGenerics

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

The following objects are masked from 'package:base':

Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, basename, cbind, colMeans, colSums, colnames,
dirname, do.call, duplicated, eval, evalq, get, grep, grepl,
intersect, is.unsorted, lapply, lengths, mapply, match, mget,
order, paste, pmax, pmax.int, pmin, pmin.int, rank, rbind,
rowMeans, rowSums, rownames, sapply, setdiff, sort, table, tapply,
union, unique, unsplit, which, which.max, which.min

Welcome to Bioconductor

Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.

index distance
A     5 2.236068
B     3 5.099020
C     4 2.236068
D     3 2.236068
E     1 2.236068
index distance
1     4     0.30
2     4     0.70
3     7     0.45
4     1     0.30
5     5     0.40
index distance
1     4     0.30
2     3     0.80
3     5     2.90
4     1     0.30
5     5     0.40
6     1     7.00
7     3     0.45
8     3     0.68
```

Biobase documentation built on Nov. 8, 2020, 6:52 p.m.