On 3/22/2011 12:47 PM, Phil Spector wrote:
Michael -
    I think this does what you want:

*Perfectly*


helm.raw <-
read.table("http://euclid.psych.yorku.ca/datavis/Private/mdshelm.dat",header=TRUE,
row.names=1)
trans =
c('A'='RPur','C'='Red','E'='Yel','G'='Gy1','I'='Gy2','K'='Green','M'='Blue','O'='BlP','Q'='Pur1','S'='Pur2')

cnames = do.call(rbind,strsplit(rownames(helm.raw), ""))
cnames = apply(cnames,2,function(x)trans[x])
uu = unique(as.vector(cnames))

onecol = function(col){
    themat = matrix(NA,10,10)
    dimnames(themat) = list(uu,uu)
    themat[cnames] = col
    as.dist(t(themat))
}

result = lapply(as.data.frame(helm.raw),onecol)

Thank you so much for this. Using the onecol function was the main trick I couldn't see.

-Michael


--
Michael Friendly     Email: friendly AT yorku DOT ca
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    Web:   http://www.datavis.ca
Toronto, ONT  M3J 1P3 CANADA

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to