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.