You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于p值条件替换Spearman相关矩阵中的数值

解决mtcars数据集Spearman相关矩阵的显著性修正问题

步骤1:加载依赖包

cor.mtest函数来自corrplot包,先加载它:

library(corrplot)

步骤2:计算Spearman相关矩阵与p值矩阵

# 计算mtcars的Spearman相关矩阵
matcor <- cor(mtcars, method = "spearman")
# 计算对应的p值矩阵
testRes <- cor.mtest(mtcars, method = "spearman")

步骤3:修正相关矩阵(将p≤0.05的位置替换为0)

你的原代码逻辑条件搞反了,且ifelse会自动将矩阵转为向量,需重新还原为矩阵格式:

# 核心修正逻辑:p≤0.05的位置设为0,其余保留原相关值
newcor <- ifelse(testRes$p <= 0.05, 0, matcor)
# 转换回矩阵并保留行列名
newcor <- matrix(newcor, nrow = nrow(matcor), ncol = ncol(matcor))
colnames(newcor) <- colnames(matcor)
rownames(newcor) <- rownames(matcor)

步骤4:绘制修正后的相关热力图

corrplot(newcor, method = "color", type = "upper", tl.col = "black", tl.srt = 45)

内容的提问来源于stack exchange,提问作者Ana Paula Castro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:33:15