首页 > 编程知识 正文

r语言怎么做相关系数,r语言绘制相关系数矩阵

时间:2023-05-05 06:11:05 阅读:231705 作者:3574

数据是使用的是CK、LG、MG和HG四个放牧处理表层微生物扩增子数据,计算群落各微生物属丰度之间以及其与放牧、生物量等的相关性。

# 1. 设置工作路径及调用R包#knitr::opts_knit$set(root.dir="D:/2018_10_26") # Rmarkdown使用setwd("D:/2018_10_26")dir()# 查看目录内容library(ggplot2)library(vegan)library(vcd)library(corrplot)library(psych)# 2. 读入数据,有一部分数据在另一个表中,所以我读入了两次,直接把数据放在一个表中就读入一次就行A=read.csv("A.csv",sep=",",header=T,row.names=1)# pg环境因子分开与待分析变量对应pg=read.csv("pg.csv", sep=",", header=TRUE, row.names=1)# 里面不止有表层土壤的数据,所以单独将表层土壤数据提出来pgA=pg[1:12,] #表中包含分类变量nameA=as.data.frame(pgA$name,row.names = row.names(pgA))colnames(nameA)[1]="group" # 提取分类变量构建分组文件pga=pgA[,-12] # 从pgA中删除分类变量,其实不用这样麻烦,直接制作一个group文件读入就可以,因为我当时是画了四幅相关性图的组合图所以就放在了一起。PA=cbind.data.frame(pga,A) # 将两个数据文件合并,后面可以进行相关性分析了

图1 原始数据表。

图2 分组文件

# 3. 相关性分析## 3.1 cor()函数计算相关性pearson相关性系数A.cor<-cor(PA) # 输出结果中包含NA,需要删除。在做数据分析之前,应该要对自己的数据有一个基本了解,做统计分析之前做好数据过滤和转换,不然可能会出现一些问题,不过没有关系,学着解决掉这些问题,也是不断提升自己的能力。### 删除含NA列A.cor=subset(A.cor,select=-c(Kocuria)) # 根据结果发现Kocuria与其他微生物属以及环境因子相关性系数都为NA### 删除含NA行A.cor=A.cor[complete.cases(A.cor),]PA$Kocuria=NULL## 3.2 corr.test()可以对所有相关性系数进行显著性检验###cor.test()只能对一对变量进行显著性检验A.test=corr.test(PA, use = "complete")A.test$psig.A <- cor.mtest(PA, conf.level = .95)# 显著性检验并将返回每对变量的置信区间sig.A

图3 相关性系数矩阵。

图4 显著性检验结果。

# 4. 使用corrplot包绘制相关性图# 4.1 绘制带显著性标记的相关性图,右上角为热图,左下角添加显著性标记pdf("cor.plot.pdf",width=5,height=5) #保存图为pdfcorrplot(corr =A.cor,order="AOE",type="upper",tl.pos="tp",tl.col="black")corrplot(corr = A.cor,add=TRUE, type="lower",method="color",order="AOE", col="white",tl.cex=1.2,diag=FALSE,tl.pos="n", cl.pos="n",p.mat = sig.A$p, insig = "label_sig", sig.level = c(.001, .01, .05),pch.cex=1, pch.col = "black",tl.col="black",addgrid.col = "black")#pch.cex设置显著性标记的大小dev.off()

图5 带显著性标记相关性热图。

# 4.2 绘制带r值的相关性图,右上角为热图,左下角添加r数值及显著性标记corrplot(corr =A.cor,order="AOE",type="upper",tl.pos="tp",tl.col="black")corrplot(corr = A.cor,add=TRUE, type="lower",method="number",order="AOE", col="black",tl.cex=1.2,diag=FALSE,tl.pos="n", cl.pos="n",p.mat = sig.A$p, insig = "label_sig", sig.level = c(.001, .01, .05),pch.cex=0.5, pch.col = "black",tl.col="black",number.cex = 0.8,number.digits = 2)# 4.3 还可以绘制只显示数值不显示显著性标记的相关性图,大家可以去看corrplot包的文档,查看各参数意义,然后自己修改参数调整图表内容。browseVignettes("corrplot") # R包帮助文档?corrplot # 函数帮助文档

图6 同时带数值和显著性标记相关性热图。显著性标记会跟数值重叠,我当时没有找到解决方法,就自己用pdf编辑器移动的显著性标记。

因为当时绘制了四个土层的相关性热图,学习了4种将四幅图合并为1个大图的方法,想一起写出来。但是写着发现内容就很冗余,之前的推文中也写过怎么合并图,所以把这篇就不写了,大家可以看推荐阅读。

参考资料:

使用corrplot包绘制相关性图

初识layout函数

layout函数用法

R可视化之图形控制和布局基础

corrplot包使用

CSS中div滚动条样式如何设置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。