View source: R/NNCTFunctions.R
| kNN | R Documentation |
k NNs of a given pointReturns the indices of the k nearest neighbors of
subject i given data set or IPD matrix x.
Subject indices correspond to rows (i.e., rows 1:n )
if x is the data set and to rows or columns
if x is the IPD matrix.
The argument is.ipd is a logical argument
(default=TRUE) to determine the structure of the argument x.
If TRUE, x is taken to be
the inter-point distance (IPD) matrix,
and if FALSE, x is taken to be the data set
with rows representing the data points.
kNN(x, i, k, is.ipd = TRUE, ...)
x |
The IPD matrix (if |
i |
index of (i.e., row number for) the subject whose NN is to be found. |
k |
Integer specifying the number of NNs (of subject |
is.ipd |
A logical parameter (default= |
... |
are for further arguments,
such as |
Returns the indices (i.e., row numbers) of
the k NNs of subject i
Elvan Ceyhan
NN, NNdist,
and NNdist2cl
n<-20 #or try sample(1:20,1)
Y<-matrix(runif(3*n),ncol=3)
ipd<-ipd.mat(Y)
k<-sample(1:5,1)
k
NN(ipd,1)
kNN(ipd,1,k)
kNN(Y,1,k,is.ipd = FALSE)
kNN(Y,1,k,is.ipd = FALSE,method="max")
NN(ipd,5)
kNN(ipd,5,k)
kNN(Y,5,k,is.ipd = FALSE)
#1D data points
X<-as.matrix(runif(15)) # need to be entered as a matrix with one column
#(i.e., a column vector), hence X<-runif(5) would not work
ipd<-ipd.mat(X)
kNN(ipd,3,k)
#with possible ties in the data
Y<-matrix(round(runif(30)*10),ncol=3)
ny<-nrow(Y)
ipd<-ipd.mat(Y)
for (i in 1:ny)
cat(i,":",kNN(ipd,i,k),"\n")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.