rm(list=ls()) library(NbClust) library(cluster.datasets) initData <- function() { data(life.expectancy.1971) returnValue <- life.expectancy.1971[-c(23, 24, 27),] returnValue$f50 <- unlist(lapply(returnValue$f50, as.numeric)) returnValue = cbind(returnValue, returnValue$m0/returnValue$f0, returnValue$m25/returnValue$f25, returnValue$m50/returnValue$f50, returnValue$m75/returnValue$f75) returnValue = as.matrix(data.frame( scale(returnValue[-(c(1,2))]) )) returnValue } main <- function() { data <- initData() for (dist in c("euclidean", "maximum", "manhattan", "minkowski")) #"canberra", "binary", { for (meth in c("kmeans", "average")) #"ward.D", "ward.D2", "single", "complete", "mcquitty", "median", , "centroid" { b <- NbClust(data, method = meth, distance = dist) print(sprintf("distance = %s, method = %s, best clusters = %.0f", dist, meth, max(b$Best.partition))) } } print("The program has ended.") } main()