https://github.com/cran/cccd
Raw File
Tip revision: 88a3c170904942f447b597ee7771d66a1825027b authored by David J. Marchette on 24 March 2013, 00:00:00 UTC
version 1.03
Tip revision: 88a3c17
nng.R

nng <- function(x=NULL,dx=NULL,k=1,mutual=FALSE,method=NULL)
{
   if(is.null(dx)) {
	  if(is.null(x)) stop("one of x or dx must be given")
	  dx <- as.matrix(dist(x,method=method))
   }
   n <- nrow(dx)
   A <- matrix(0,nrow=n,ncol=n)
   for(i in 1:n){
	  d <- sort(dx[i,])
      A[i,dx[i,]<=d[k+1]] <- 1
   }
   diag(A) <- 0
   if(mutual){
      for(i in 1:n){
	     A[i,] <- A[i,] & A[,i]
		 A[,i] <- A[i,]
	  }
   }
	if(mutual)
		out <- graph.adjacency(A,mode="undirected")
	else
		out <- graph.adjacency(A,mode="directed")
	out$k <- k
	out$mutual <- mutual
	out$layout <- x
   out
}

back to top