args <- commandArgs() fnameR <- args[6] d <- read.table(fnameR,skip=1) n <- nrow(d) m <- ncol(d)-1 x <- as.matrix(d[,1:m]) cl <- d[,m+1] xx <- x %*% t(x) ii <- matrix(1,nrow=n,ncol=n) dis <- (diag(n)*xx)%*%ii-2*xx+ii%*%(diag(n)*xx) #Distance matrix mat <- diag(n)-1/n*ii ary <- -0.5*mat %*% dis %*% mat #Young-Householder's transformation yy <- eigen(ary) emat<- matrix(0,nrow=n,ncol=n) for(i in 1:n){ if(0<=yy$values[i])emat[i,i]<-sqrt(yy$values[i]) if(yy$values[i]<0)emat[i,i]<-0 } plt <- yy$vectors %*% emat panel.text<-function(x, y, labels, cex, font, ...){ usr <- par("usr"); on.exit(par(usr)) par(usr = c(0,1,0,1) ) txt <- c("MDS") cex<-2 font<-"Helvetica" text(0.5, 0.5, txt, cex = cex) } pairs( plt[,1:m], diag.panel=NULL, text.panel=panel.text, pch=21, bg=c("red","blue","yellow","cyan","green","black")[unclass(cl)] )