是否有 R 函数可以导出相关矩阵中显示的相关性?

Posted

技术标签:

【中文标题】是否有 R 函数可以导出相关矩阵中显示的相关性?【英文标题】:Is there an R function to export the correlations showed in a correlation matrix? 【发布时间】:2019-08-30 12:35:53 【问题描述】:

我已经创建与ggpairs的相关矩阵,使用我的资料由因子分组。但是我不能提取所呈现的相关性(我感兴趣的各因素的整体相关性的贡献,以及它的意义) P>

我创建同时使用ggpairs和另一个使用PerformanceAnalytics的相关矩阵。 我试图以及计算所述相关性,以及作为p值(这里没有运气)对于每个因子的 P>

ggpairs(s1[,4:12], aes(colour = s1$media), title = "1308", upper=list(
continuous=wrap("cor", size = 2.3)))

chart.Correlation(s1[,4:6], histogram=TRUE, pch=19,cex.labels=0.3, method = "s")

我还试图计算的相关性和p值,但对于P值我的循环停止在第一矩阵 P>

for(l in levels(s1[,3]))
   cor.by.treat[[l]]<-(cor(s1[which(s1[,1]==l),4:12],
                           use="complete.obs", method = "spearman"))
 
pcor.by.treat <- list()  
>  for(l in levels(s1[,1]))
     pcor.by.treat[[l]]<-(cor.mtest(s1[which(s1[,1]==l),4:12],                                      
  method = "spearman", use="complete.obs"))
 

的数据的子集可以发现here P>

我想我的可视化数据作为在ggpairs,但与意义(如在chart.Correlation)。有没有一种方法来提取上部的内容?

在相关矩阵不是一个真正的选择,因为我有其他子集10等提供的所述一个,并且我欣赏以保持主相关和它的组分一起。 P>

【问题讨论】:

【参考方案1】:

试试这个,


data_list <- split(s1, s1$media)
p_value <- lapply(data_list, function(x) corrplot::cor.mtest(x[, 4:12])[["p"]])
correlation <- lapply(data_list, function(x) cor(x[, 4:12], method = "spearman"))

这将为您提供按media 分组的p_valuecorrelation 列表。除了media,您也可以使用medium.strain

【讨论】:

谢谢你,完美!我确实对整个数据集使用了medium.strain

以上是关于是否有 R 函数可以导出相关矩阵中显示的相关性?的主要内容,如果未能解决你的问题,请参考以下文章

R 中的相关矩阵相关性显示为“?”在网格中

R中的相关聚类

是否有将函数应用于每对列的 R 函数?

R语言使用cor函数计算相关性矩阵进行相关性分析,使用corrgram包可视化相关性矩阵行和列使用主成分分析重新排序下三角形中使用底纹和颜色表示相关性(自定义颜色)上三角形中添加相关性数值

如何用R语言做线性相关回归分析

R语言使用cor函数计算相关性矩阵进行相关性分析,使用corrgram包可视化相关性矩阵行和列使用主成分分析重新排序下三角形中使用底纹和颜色表示相关性变量按其原始顺序绘制上三角形空白