我看到已经有代码可以将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
代替cor
和cor.test
运行上述代码时,我收到了消息
combn(p,2)中的错误:n&lt;米
有什么想法吗?