https://github.com/cran/cccd
Raw File
Tip revision: de4ce40da7a3b119ee4d19055a910ee9a4ad2a63 authored by David J. Marchette on 08 April 2022, 11:22:29 UTC
version 1.6
Tip revision: de4ce40
nng.Rd
\name{nng}
\alias{nng}
\title{ Nearest Neighbor Graphs}
\description{
  nearest neighbor, k-nearest neighbor, and mutual k-nearest neighbor 
  (di)graphs.
}
\usage{
nng(x = NULL, dx = NULL, k = 1, mutual = FALSE, method = NULL, 
    use.fnn = FALSE, algorithm = 'cover_tree')
}
\arguments{
  \item{x}{ a data matrix. Either x or dx is required}
  \item{dx}{ interpoint distance matrix}
  \item{k}{ number of neighbors}
  \item{mutual}{ logical. if true the neighbors must be mutual. See details.}
  \item{method}{ the method used for the distance. 
     See \code{\link[proxy]{dist}}}
  \item{use.fnn}{logical. If TRUE, \code{get.knn} from the FNN package
  is used to obtain the neighbors.}
  \item{algorithm}{see \code{\link[FNN]{get.knn}}.}
}
\details{
 a k-nearest neighbor graph is a digraph where each vertex is
 associated with an observation and there is a directed edge between
 the vertex and it's k nearest neighbors. A mutual k-nearest neighbor
 graph is a graph where there is an edge between x and y if x is
 one of the k nearest neighbors of y AND y is one of the k nearest
 neighbors of x.
}
\value{
  an object of class igraph with the extra attributes
  \item{layout}{ the x vectors.}
  \item{k,mutual,p}{arguments given to \code{nn}.}
}
\references{ 
D.J. Marchette, Random Graphs for Statistical Pattern Recognition,
John Wiley & Sons, 2004.
}
\author{ David J. Marchette david.marchette@navy.mil}
\seealso{
\code{\link[proxy]{dist}}
\code{\link[FNN]{get.knn}}
}

\examples{

x <- matrix(runif(100),ncol=2)

G1 <- nng(x,k=1)
\dontrun{
par(mfrow=c(2,2))
plot(G1)
}

G2 <- nng(x,k=2)
\dontrun{
plot(G2)
}

G5 <- nng(x,k=5)
\dontrun{
plot(G5)
}

G5m <- nng(x,k=5,mutual=TRUE)
\dontrun{
plot(G5m)
par(mfrow=c(1,1))
}

}
\keyword{ graphs }
back to top