如何为使用R中的对绘制的Spearman相关系数添加p值

时间:2014-03-17 17:28:10

标签: r scatter-plot

我看到已经有代码可以将Pearson相关系数和p值添加到散点图矩阵中。现在我只想在上面板中添加Spearman相关系数。目前我可以通过调用upper.panel=panel.cor来添加Pearson相关系数,如下所示。

# the code for creating a scatterplot matrix
pairs(mat, upper.panel=panel.cor)

panel.cor是先前Stack Overflow post~

中提供的函数
# panel.cor, the code for calculating coefficients and p values

panel.cor <- function(x, y, digits = 2, cex.cor, ...)
{
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(0, 1, 0, 1))
  # correlation coefficient
  r <- cor(x, y, **method="spearman"**)
  txt <- format(c(r, 0.123456789), digits = digits)[1]
  txt <- paste("r= ", txt, sep = "")
  text(0.5, 0.6, txt)

  # p-value calculation
  p <- cor.test(x, y, **method="spearman"**)$p.value
  txt2 <- format(c(p, 0.123456789), digits = digits)[1]
  txt2 <- paste("p= ", txt2, sep = "")
  if(p<0.01) txt2 <- paste("p= ", "<0.01", sep = "")
  text(0.5, 0.4, txt2)
}

为了修改Spearman的系数和p值,我在上面用粗体表示的两个地方添加了“method =”spearman“。当我运行panel.cor时没有错误信息,但是上面板从上面的代码中出来了。

我还尝试用rcor包中的ltm替换cor,但这也无效。如果我运行rcor代替cor,我会收到消息:

  

lower.panel(...)出错:找不到函数“rcor”

当我使用rcor.test代替corcor.test运行上述代码时,我收到了消息

  

combn(p,2)中的错误:n&lt;米

有什么想法吗?

0 个答案:

没有答案