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 <[EMAIL PROTECTED]> 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. -- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894 ______________________________________________ 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.