If your purpose is simply to represent a correlation matrix it in a more compact way see ?symnum, the corrgram package and an example in the book Multivariate Data Visualization (regarding which gives a lattice implementation).
On Fri, Mar 7, 2008 at 2:15 PM, Martin Kaffanke <tech...@roomandspace.com> wrote: > Thank you, thats really good and gives me very good information. > > Thanks, > Martin > > Am Donnerstag, den 06.03.2008, 14:35 -0500 schrieb Chuck Cleland: >> On 3/6/2008 2:07 PM, Martin Kaffanke wrote: >> > Am Mittwoch, den 05.03.2008, 14:38 -0300 schrieb Henrique Dallazuanna: >> >> Try this: >> >> >> >> On 05/03/2008, Martin Kaffanke <tech...@roomandspace.com> wrote: >> >>> Hi there! >> >>> >> >>> In my case, >> >>> >> >>> cor(d[1:20]) >> >>> >> >>> makes me a good correlation matrix. >> >>> >> >>> Now I'd like to have it one sided, means only the left bottom side to be >> >>> printed (the others are the same) and I'd like to have * where the >> >>> p-value is lower than 0.05 and ** lower than 0.01. >> >>> >> >>> How can I do this? >> >> d <- matrix(rexp(16, 2), 4) >> >> corr <- cor(d) >> >> sign <- symnum(cor(d), cutpoints=c(0.05, 0.01), corr = T, >> >> symbols=c("***", "**", "*"), abbr=T, diag=F) >> >> >> >> noquote(mapply(function(x, y)paste(x, format(y, dig=3), sep=''), >> >> as.data.frame(unclass(sign)), as.data.frame(corr))) >> > >> > Seems that we mark the value itself, but not the p-value. >> > >> > So lets say, in a way I have to get the lower left half of a >> > >> > cor(el[1:20]) >> > >> > Then I need to calc all the values with a cor.test() to see for the >> > p-value. And the p-value should be lower than .05 or .01 -> this should >> > make the * to the value. >> > >> > Thanks, >> > Martin >> >> Do you want something like the following, but with the upper triangle >> removed? >> >> corstars <- function(x){ >> require(Hmisc) >> x <- as.matrix(x) >> R <- rcorr(x)$r >> p <- rcorr(x)$P >> mystars <- ifelse(p < .01, "**|", ifelse(p < .05, "* |", " |")) >> R <- format(round(cbind(rep(-1.111, ncol(x)), R), 3))[,-1] >> Rnew <- matrix(paste(R, mystars, sep=""), ncol=ncol(x)) >> diag(Rnew) <- paste(diag(R), " |", sep="") >> rownames(Rnew) <- colnames(x) >> colnames(Rnew) <- paste(colnames(x), "|", sep="") >> Rnew <- as.data.frame(Rnew) >> return(Rnew) >> } >> >> corstars(swiss[,1:4]) >> Fertility| Agriculture| Examination| Education| >> Fertility 1.000 | 0.353* | -0.646**| -0.664**| >> Agriculture 0.353* | 1.000 | -0.687**| -0.640**| >> Examination -0.646**| -0.687**| 1.000 | 0.698**| >> Education -0.664**| -0.640**| 0.698**| 1.000 | >> >> I will leave the removing the upper triangle part to you - should be >> examples in the archives. >> >> > ------------------------------------------------------------------------ >> > >> > ______________________________________________ >> > 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. >> > -- > Ihr Partner für Webdesign, Webapplikationen und Webspace. > http://www.roomandspace.com/ > Martin Kaffanke +43 650 4514224 > > ______________________________________________ > 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. > > ______________________________________________ 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.