On Wed, 05 Mar 2003 22:34:16 +0100
"juli g. pausas" <juli at ceam.es> wrote:
> Hi,
> 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)
> res
> }
>
> 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.
> Thanks
>
> Juli
>
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