I've benefited from this list with input on how to build up a symmetrical matrix. The purpose of that query was to work with the output from the MINE routine posted at www.exploredata.net To the extent it helps others, here is the script that I was working on an which turns a given MINE output column (in the case below, the third column corresponding to "MIC") into a matrix. Hope it helps, Matt #needed for MINE routine require(rJava) #load market data require(PortfolioAnalytics) data(indexes) #write CSV file of data to current working directory datafilename <- "indexes.csv" write.table(indexes, datafilename, sep=",", col.names=TRUE, row.names=FALSE, quote=FALSE, na="NA") #read MINE R code source.with.encoding('MINE.r', encoding='UTF-8') pairs_method <- "all.pairs" max_num_boxes_exponent <- 0.6 num_clumps_factor <- 15 #run MINE routine on data MINE(datafilename,style=pairs_method, max.num.boxes.exponent=max_num_boxes_exponent, num.clumps.factor=num_clumps_factor) #read output of MINE routine #data is sorted in descending order of MIC variable #output is half of a square symmetric matrix, excluding diagonal #there are 9 columns, 7 of which are various stats #calc of outputfilename could be better handled ... # kludge included to deal with filename generated on Windows outputfilename <- sprintf("%s,%s,cv=0.0,B=n^%g,Results.csv",datafilename, sub(".","",pairs_method,fixed=TRUE), max_num_boxes_exponent) x<-read.csv(outputfilename,header=TRUE) #isolate row/col frequencies as a matrix. we need to look at # both to get the complete list of pairs and their respective frequencies xtable<-table(x$X.var) ytable<-table(x$Y.var) #map frequencies of X & Y vars to rows xmap<-xtable[x$X.var] ymap<-ytable[x$Y.var] finalmap<-order(xmap,-ymap,decreasing=TRUE) #fill in matrix - we want the third column for MIC z<-diag(length(levels(x$X.var))+1) z[row(z)>col(z)]<-x[finalmap,3] z<-z+t(z) diag(z)<-1 #determine and set row/column names varnames<-c(names(sort(xtable,decreasing=TRUE)),names(sort(ytable,decreasing=TRUE))[1]) rownames(z)<-varnames colnames(z)<-varnames z