《数量生态学——R语言的应用》赖江山译
3.4.3 环境变量之间的Pearson线性相关系数r
env.pearson<-cor(env)
round(env.pearson,2)
env.o<-order.single(env.pearson)
op<-par(mfrow=c(1,1),pty="s")
pairs(env[,env.o],lower.panel = panel.smooth,upper.panel = panel.cor,diag.panel = panel.hist,main="Pearman Correlation Matrix")
在R控制台中出现报错:
Error in pairs.default(env[, env.o], lower.panel = panel.smooth, upper.panel = panel.cor, :
object 'panel.cor' not found
解决方法:
1.在控制台敲入?pairs
2.弹出的页面中可以找到以下函数
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r <- abs(cor(x, y))
txt <- format(c(r, 0.123456789), digits = digits)[1]
txt <- paste0(prefix, txt)
if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
text(0.5, 0.5, txt, cex = cex.cor * r)
}
3.在R控制台执此函数然后再执行pair函数即可
4.若继续出现报错“Error in pairs.default(env[, env.o], lower.panel = panel.smooth, upper.panel = panel.cor, :
object 'panel.hist' not found”
5.在?pairs文件中找到如下函数并执行即可
panel.hist <- function(x, ...)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(usr[1:2], 0, 1.5) )
h <- hist(x, plot = FALSE)
breaks <- h$breaks; nB <- length(breaks)
y <- h$counts; y <- y/max(y)
rect(breaks[-nB], 0, breaks[-1], y, col = "cyan", ...)
}