如何使用rcorr函数仅计算两个矩阵变量间的相关性而非全量相关
仅提取两个矩阵变量间的rcorr相关性结果
要只保留m1和m2变量之间的交叉相关性,不需要全量两两相关矩阵,可以通过提取rcorr返回结果的子集来实现。具体操作步骤:
加载依赖的
Hmisc包(rcorr函数属于该包):library(Hmisc)基于
mtcars数据集构造目标矩阵:m1 <- mtcars[, c("mpg", "disp")] m2 <- mtcars[, c("hp", "wt")]调用
rcorr计算相关性(这里指定spearman类型):cor_out <- rcorr(y = m1, x = m2, type = "spearman")提取
m1与m2变量间的相关系数矩阵:rcorr返回的$r是完整的相关系数矩阵,包含m1内部、m2内部以及两者交叉的相关性。我们通过行和列的索引筛选出交叉部分:cross_cor_r <- cor_out$r[rownames(m1), colnames(m2)]提取对应的p值矩阵(如果需要统计显著性结果):
cross_cor_p <- cor_out$P[rownames(m1), colnames(m2)]查看结果:
print("相关系数矩阵:") print(cross_cor_r) print("p值矩阵:") print(cross_cor_p)
这样就能得到仅包含mpg/disp与hp/wt之间的相关性结果,排除了同一矩阵内部变量的相关计算。
内容的提问来源于stack exchange,提问作者i.b
相关产品推荐
相关产品推荐

