[R] cor.test in matrices
Frank E Harrell Jr
fharrell at virginia.edu
Wed Mar 5 23:14:17 CET 2003
On Wed, 05 Mar 2003 22:34:16 +0100
"juli g. pausas" <juli at ceam.es> wrote:
> For computing correlation among variables in a matrix, I use cor( ), but
> for computing the p-values I'm using cor.test in the following way:
> cor.p <- function(X)
> res <- matrix(0, ncol(X), ncol(X))
> for (i in 1:ncol(X))
> for (j in 1:ncol(X)) res[i, j]<- cor.test(X[, i], X[, j])$p.value
> rownames(res) <- colnames(res) <- colnames(X)
> I'm just wondering if there is a better (nicer) way to do the same.
> For example, would it be possible to use apply() with cor.test instead
> of using the for loops?
> I'm trying to improve my low R skills.
One approach is to install the Hmisc package and run rcorr(X) which will give you a matrix of P values for Pearson or Spearman correlations. See http://hesweb1.med.virginia.edu/biostat/s/Hmisc.html
Frank E Harrell Jr Prof. of Biostatistics & Statistics
Div. of Biostatistics & Epidem. Dept. of Health Evaluation Sciences
U. Virginia School of Medicine http://hesweb1.med.virginia.edu/biostat
More information about the R-help