当Spearman cor r
时,第一个对角背景总是白色的。
它从未发生过其他的措施。
library("psych")
library("corrplot")
M <- mtcars
M.cor <- cor(M)
p.mat.all <- psych::corr.test(M.cor, adjust = "none", ci = F)
alpha <- 0.05
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
lapply(c("r","p","t"), function(ID) { # http://stackoverflow.com/a/40531043/54964
x <- p.mat.all[[ID]]
corrplot( M.cor,
p.mat = x,
sig.level = alpha,
insig = "blank",
)
})
我明确地diag = T
放在那里,但没有它也应该没问题。
图。 1最小例子的输出
没有警告。
R:3.3.1
操作系统:Debian 8.5
开发人员的票证:#74
答案 0 :(得分:1)
这是该软件中的一个错误。它向开发者报告。
另请参阅相关的github问题:https://github.com/taiyun/corrplot/issues/74,很快就会引用vsimko:
这看起来像是psych :: corr.test中的一个问题而不是corrplot中的问题
p.mat.all <- psych::corr.test(M.cor, adjust = "none", ci = F)
diag(p.mat.all$r) # produces 1
diag(p.mat.all$p) # produces 0
diag(p.mat.all$t) # produces Inf
解决方法
par(mfcol = c(1, 3))
M <- cor(mtcars)
p.mat.all <- psych::corr.test(M, adjust = "none", ci = FALSE)
for (ID in c("r", "p", "t")) {
x <- p.mat.all[[ID]]
diag(x) <- 0 ### THE WORKAROUND IS HERE ###
corrplot( M, p.mat = x, sig.level = .05, insig = "blank")
}
图。 1输出