Nothing
index.DB<-function(x,cl,d=NULL,centrotypes="centroids",p=2,q=2){
if(sum(c("centroids","medoids")==centrotypes)==0)
stop("Wrong centrotypes argument")
if("medoids"==centrotypes && is.null(d))
stop("For argument centrotypes = 'medoids' d cannot be null")
if(!is.null(d)){
if(!is.matrix(d)){
d<-as.matrix(d)
}
row.names(d)<-row.names(x)
}
if(is.null(dim(x))){
dim(x)<-c(length(x),1)
}
x<-as.matrix(x)
n <- length(cl)
k <- max(cl)
#print(n)
dAm<-d
centers<-matrix(nrow=k,ncol=ncol(x))
if (centrotypes=="centroids"){
for(i in 1:k)
{
for(j in 1:ncol(x))
{
centers[i,j]<-mean(x[cl==i,j])
}
}
}
else if (centrotypes=="medoids"){
#print("start")
#print(dAm)
for (i in 1:k){
clAi<-dAm[cl==i,cl==i]
if (is.null(clAi)){
centers[i,]<-NULL
}
else{
#print("przed centers")
#print(x[cl==i,])
#print(clAi)
centers[i,]<-.medoid(x[cl==i,],dAm[cl==i,cl==i])
#print("po centers")
#print(centers[i])
}
}
#print("stop")
}
else{
stop("wrong centrotypes argument")
}
S<-rep(0,k)
for(i in 1:k){ # For every cluster
ind <- (cl==i)
if (sum(ind)>1){
centerI<-centers[i,]
centerI<-rep(centerI,sum(ind))
centerI<-matrix(centerI,nrow=sum(ind),ncol=ncol(x),byrow=TRUE)
S[i] <- mean(sqrt(apply((x[ind,] - centerI)^2,1,sum))^q)^(1/q)
}
else
S[i] <- 0
}
M<-as.matrix(dist(centers,method="minkowski",p=p))
R <- array(Inf,c(k,k))
r = rep(0,k)
for (i in 1:k){
for (j in 1:k){
R[i,j] = (S[i] + S[j])/M[i,j]
}
r[i] = max(R[i,][is.finite(R[i,])])
}
DB = mean(r[is.finite(r)])
resul<-list(DB=DB,r=r,R=R,d=M,S=S,centers=centers)
resul
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.