R语言计算相关性和p-values

本文介绍了如何使用R语言计算不同变量之间的相关系数,并通过rcorr函数获取p-values,展示了从单个站点到多个站点数据处理的详细步骤,最终将结果保存为CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


title: R语言计算相关性和p-values
date: 2021-08-21 23:45:52
tags:

#R语言计算相关性和p-values

setwd('C:/Users/LHW/Desktop/')
data <- read.table("clipboard",sep="\t",header = T)

site_list<-unique(data$site_name)

#计算相关系数
test<-data[data$site_name==site_list[1],]
test<-test[,2:length(test)]
cor_temp<-cor(test)
t<-cor_temp[2,]
#colnames(t)[1]<-site_list[1]
t1<-cor_temp[dim(cor_temp)[1],]
#colnames(t1)[1]<-paste('detrended',site_list[1])  

ini1<-t
ini2<-t1
for (i in 2:length(site_list)) {
  print(i)
  test<-data[data$site_name==site_list[i],]
  test<-test[,2:length(test)]
  cor_temp<-cor(test)
  t<-cor_temp[2,]
  #colnames(t)[1]<-site_list[i]
  t1<-cor_temp[dim(cor_temp)[1],]
  #colnames(t1)[1]<-paste('detrended',site_list[i])  
  ini1<-cbind(ini1,t)
  ini2<-cbind(ini2,t1)
}

colnames(ini1)<-site_list
colnames(ini2)<-site_list

write.csv(ini1,file="gentoo_corr.csv")
write.csv(ini2,file="detrend_gentoo_corr.csv")


#计算显著性水平
setwd('C:/Users/LHW/Desktop/')
data <- read.table("clipboard",sep="\t",header = T)

site_list<-unique(data$site_name)
library(Hmisc)

test<-data[data$site_name==site_list[1],]
test<-test[,2:length(test)]
test<-as.matrix(test)
cor_temp<-rcorr(test)$P
t<-cor_temp[2,]
#colnames(t)[1]<-site_list[1]
t1<-cor_temp[dim(cor_temp)[1],]
#colnames(t1)[1]<-paste('detrended',site_list[1])  

ini1<-t
ini2<-t1
for (i in 2:length(site_list)) {
  print(i)
  test<-data[data$site_name==site_list[i],]
  test<-test[,2:length(test)]
  test<-as.matrix(test)
  cor_temp<-rcorr(test)$P
  t<-cor_temp[2,]
  #colnames(t)[1]<-site_list[i]
  t1<-cor_temp[dim(cor_temp)[1],]
  #colnames(t1)[1]<-paste('detrended',site_list[i])  
  ini1<-cbind(ini1,t)
  ini2<-cbind(ini2,t1)
}

colnames(ini1)<-site_list
colnames(ini2)<-site_list

write.csv(ini1,file="gentoo_pvalues.csv")
write.csv(ini2,file="detrend_gentoo_pvalues.csv")

### 使用 R 语言创建包含 p 标注的相关性热图 为了在 R 中创建带有 P 标注的相关性热图,可以采用多种方法来完成这一目标。以下是具体实现过程: #### 准备工作环境与数据集 确保已安装必要的包 `corrplot` `Hmisc` 来处理相关性统计测试。 ```r install.packages("corrplot") install.packages("Hmisc") library(corrplot) library(Hmisc) ``` 加载所需的数据框作为例子,这里假设有一个名为 `data_matrix` 的矩阵表示不同样本之间的数关系[^1]。 #### 计算皮尔逊相关系数及其对应的P 利用 `rcorr()` 函数来自动生成两个重要组件——即 Pearson 相关系数矩阵 (`r`) 及其关联性的双侧检验概率 (p-values),并将它们存储起来以便后续操作。 ```r correlation_results <- rcorr(as.matrix(data_matrix)) pearson_correlations <- correlation_results$P ``` #### 绘制带显著性标记的热力图 通过自定义颜色方案符号显示方式,使得最终呈现出来的图像不仅美观而且直观易懂。对于每一个格子中的实际内容,则取决于所设定阈条件下的表现形式:当某个位置上的 P-value 小于给定水平时,在对应单元格内添加星号(*)以突出展示该处存在较强联系;反之则为空白区域。 ```r # 设置图形参数 par(mar=c(0.5,0.5,2,0.5)) # 定义用于映射到颜色范围内的最小最大限界 lims = range(-1, 1) # 创建空白画布准备绘图 plot.new() # 调整布局比例适应标签长度变化影响 layout(matrix(c(1, 2), nrow=1), widths=c(7, 1)) # 主要部分 - 热度图本身加上上下文信息说明文字 corrplot.mixed( pearson_correlations, lower="number", upper="circle", tl.pos="n", diag=FALSE, col=colorRampPalette(c("#BB4444","#EE9988","#FFFFFF","#77AADD","#4477AA"))(20), cl.lim=lims, addCoef.col = "black" ) # 添加右侧的颜色条形指示器辅助理解色彩含义 plot(NULL, type='n', axes=F,xlab="",ylab="") image(lims~c(lims),col=colorRampPalette(c("#BB4444","#EE9988","#FFFFFF","#77AADD","#4477AA"))(20),asp=1) axis(side=4, at=seq(from=-1,to=1,length.out=5), labels=format(seq(-1,1,.5),digits=2)) mtext(text="Pearson's\nCorrelation", side=4,line=3,cex.lab=.75) # 显著性水平设置及相应符号替换逻辑判断语句 sig_level <- .05 signif_symbols <- ifelse(p_values < sig_level,"*", "") # 追加额外层面上的信息表达—-即各个交叉点位上是否达到预设标准从而获得特殊记号点缀效果 for(i in seq_len(nrow(signif_symbols))){ for(j in seq_len(ncol(signif_symbols))){ text(x=j-.5,y=i-.5,label=signif_symbols[i,j], cex=.8,col="blue") } } ``` 此代码片段展示了如何结合视觉化手段有效地传达复杂多维统计数据间的关系模式,并且能够帮助研究者快速识别哪些配对之间存在着统计意义上的强关联特性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值