| funs.kNNdist2cl {nnspat} | R Documentation |
Functions for the k^{th} and k NN distances
Description
Two functions: kthNNdist2cl and kNNdist2cl.
kthNNdist2cl returns the distances between subjects from
class i and their k^{th} NNs from class j.
The output is a list with first entry (kth.nndist)
is an n_i \times 3 matrix
where n_i is the size of class i
and first column is the subject index for class i,
second column is the index of the k^{th} NN of
class i subjects among class j subjects and third column
contains the corresponding k^{th} NN distances.
The other entries in the list are labels of base class
and NN class and the value of k, respectively.
kNNdist2cl returns the distances between subjects from class i
and their k NNs from class j.
The output is a list with first entry (ind.knndist) is
an n_i \times (k+1) matrix
where n_i is the size of class i,
first column is the indices of class i subjects,
second to (k+1)-st columns are the indices of
k NNs of class i subjects among class j subjects.
The second list entry (knndist) is
an n_i \times k matrix where n_i is the
size of class i and the columns are
the kNN distances of class i subjects
to class j subjects.
The other entries in the list are labels of base class
and NN class and the value of k, respectively.
The argument within.class.ind is a logical argument
(default=FALSE) to determine the indexing of
the class i subjects.
If TRUE, index numbering of subjects is within the class,
from 1 to class size (i.e., 1:n_i),
according to their order in the original data; otherwise,
index numbering within class is just the indices
in the original data.
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.
Usage
kthNNdist2cl(x, k, i, j, lab, within.class.ind = FALSE, is.ipd = TRUE, ...)
kNNdist2cl(x, k, i, j, lab, within.class.ind = FALSE, is.ipd = TRUE, ...)
Arguments
x |
The IPD matrix (if |
k |
Integer specifying the number of NNs (of subjects). |
i, j |
class label of base class and NN classes, respectively. |
lab |
The |
within.class.ind |
A logical parameter (default= |
is.ipd |
A logical parameter (default= |
... |
are for further arguments, such as |
Value
kthNNdist2cl returns the list of elements
kth.nndist |
|
base.class |
label of base class |
nn.class |
label of NN class |
k |
value of |
kNNdist2cl returns the list of elements
ind.knndist |
|
knndist |
|
base.class |
label of base class |
nn.class |
label of NN class |
k |
value of |
Author(s)
Elvan Ceyhan
See Also
NNdist2cl, kthNNdist,
and kNNdist
Examples
#Examples for kthNNdist2cl
#3D data points
n<-20 #or try sample(1:20,1)
Y<-matrix(runif(3*n),ncol=3)
ipd<-ipd.mat(Y)
#two class case
clab<-sample(1:2,n,replace=TRUE) #class labels
table(clab)
kthNNdist2cl(ipd,3,1,2,clab)
kthNNdist2cl(Y,3,1,2,clab,is.ipd = FALSE)
kthNNdist2cl(ipd,3,1,2,clab,within = TRUE)
#three class case
clab<-sample(1:3,n,replace=TRUE) #class labels
table(clab)
kthNNdist2cl(ipd,3,2,3,clab)
#1D data points
n<-15
X<-as.matrix(runif(n))# need to be entered as a matrix with one column
#(i.e., a column vector), hence X<-runif(n) would not work
ipd<-ipd.mat(X)
#two class case
clab<-sample(1:2,n,replace=TRUE) #class labels
table(clab)
kthNNdist2cl(ipd,3,1,2,clab) # here kthNNdist2cl(ipd,3,1,12,clab)
#gives an error message
kthNNdist2cl(ipd,3,"1",2,clab)
#Examples for kNNdist2cl
#3D data points
n<-20 #or try sample(1:20,1)
Y<-matrix(runif(3*n),ncol=3)
ipd<-ipd.mat(Y)
#two class case
clab<-sample(1:2,n,replace=TRUE) #class labels
table(clab)
kNNdist2cl(ipd,3,1,2,clab)
kNNdist2cl(Y,3,1,2,clab,is.ipd = FALSE)
kNNdist2cl(ipd,3,1,2,clab,within = TRUE)
#three class case
clab<-sample(1:3,n,replace=TRUE) #class labels
table(clab)
kNNdist2cl(ipd,3,1,2,clab)
#1D data points
n<-15
X<-as.matrix(runif(n))# need to be entered as a matrix with one column
#(i.e., a column vector), hence X<-runif(n) would not work
ipd<-ipd.mat(X)
#two class case
clab<-sample(1:2,n,replace=TRUE) #class labels
table(clab)
kNNdist2cl(ipd,3,1,2,clab)
kNNdist2cl(ipd,3,"1",2,clab) #here kNNdist2cl(ipd,3,"a",2,clab)
#gives an error message