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
<technik at 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 <technik at 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 at 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 at 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.