1

我用 ggpairs 创建了一个相关矩阵,我的数据按因子分组。但是我无法提取所呈现的相关性(我对每个因素对整体相关性的贡献以及它的重要性感兴趣)

我使用 ggpairs 和另一个使用 PerformanceAnalytics 创建了一个相关矩阵。我也尝试计算每个因素的相关性以及 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 值,我的循环在第一个矩阵处停止

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"))
 }

可以在此处找到数据的子集

我想将我的数据可视化为 ggpairs,但具有重要性(如 chart.Correlation 中)。有没有办法提取上部的内容?

相关矩阵并不是一个真正的选择,因为我有 10 个其他子集,就像提供的那个一样,我希望将主要相关性和它的组件保持在一起。

4

1 回答 1

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"))

这将为您提供一个列表p_value并按correlation. media而不是media你也可以使用medium.strain

于 2019-04-09T09:25:33.043 回答