# sNN

##### Shared Nearest Neighbors

Calculates the number of shared nearest neighbors.

- Keywords
- model

##### Usage

```
sNN(x, k, kt = NULL, sort = TRUE, search = "kdtree", bucketSize = 10,
splitRule = "suggest", approx = 0)
```

##### Arguments

- x
a data matrix, a dist object or a kNN object.

- k
number of neighbors to consider to calculate the shared nearest neighbors.

- kt
threshold on the number of shared nearest neighbors graph. Edges are only preserved if

`kt`

or more neighbors are shared.- search
nearest neighbor search strategy (one of "kdtree", "linear" or "dist").

- sort
sort the neighbors by distance? Note that this is expensive and

`sort = FALSE`

is much faster. kNN objects can be sorted using`sort()`

.- bucketSize
max size of the kd-tree leafs.

- splitRule
rule to split the kd-tree. One of "STD", "MIDPT", "FAIR", "SL_MIDPT", "SL_FAIR" or "SUGGEST" (SL stands for sliding). "SUGGEST" uses ANNs best guess.

- approx
use approximate nearest neighbors. All NN up to a distance of a factor of 1+

`approx`

eps may be used. Some actual NN may be omitted leading to spurious clusters and noise points. However, the algorithm will enjoy a significant speedup.

##### Details

The number of shared nearest neighbors is the intersection of the kNN neighborhood of two points. Note: that each point is considered to be part of its own kNN neighborhood. The range for the shared nearest neighbors is [0,k].

##### Value

An object of class sNN containing a list with the following components:

a matrix with ids.

a matrix with the distances.

a matrix with the number of shared nearest neighbors.

number of k used.

##### See Also

##### Examples

```
# NOT RUN {
data(iris)
x <- iris[, -5]
# finding kNN and add the number of shared nearest neighbors.
k <- 5
nn <- sNN(x, k = k)
nn
# shared nearest neighbor distribution
table(as.vector(nn$shared))
# explore neighborhood of point 10
i <- 10
nn$shared[i,]
plot(nn, x)
# apply a threshold to create a sNN graph with edges
# if more than 3 neighbors are shared.
plot(sNN(nn, kt = 3), x)
# }
```

*Documentation reproduced from package dbscan, version 1.1-1, License: GPL (>= 2)*