You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中基于两个数据集计算基因的Pearson相关系数及匹配CTN数据

匹配CTN值并计算基因的Pearson相关系数

完全没问题!这其实是R数据处理里很常见的操作,我来一步步给你讲清楚怎么做:

步骤1:准备环境

首先确保你安装并加载了tidyr和dplyr包(这两个是tidyverse家族的核心工具,处理数据超方便):

install.packages(c("tidyr", "dplyr")) # 如果还没安装的话
library(tidyr)
library(dplyr)

步骤2:把宽格式的功能多样性数据转成长格式

你的df是宽格式(每个物种占一列),而ctn_df是长格式,咱们先把df转成和ctn_df匹配的长格式:

df_long <- df %>%
  pivot_longer(cols = -Human_Gene_Name,  # 除了基因名之外的所有列都要转换
               names_to = "Species",     # 转换后的物种名列名
               values_to = "Functional_Diversity") # 转换后的功能多样性列名

转换后的数据结构会变成每一行对应一个基因+一个物种的组合,这样就和ctn_df的结构对齐了。

步骤3:匹配CTN值

接下来用left_join把两个表按Species列合并,就能自动把每个物种的CTN值对应到对应的功能多样性数据上:

df_combined <- df_long %>%
  left_join(ctn_df, by = "Species")

这一步完成后,你就能看到每个基因-物种行里同时有Functional_Diversity和CTN两个数值了。

步骤4:计算每个基因的Pearson相关系数

最后咱们按基因分组,对每个基因的功能多样性和CTN值计算皮尔逊相关系数:

gene_correlations <- df_combined %>%
  group_by(Human_Gene_Name) %>%
  summarize(Pearson_Correlation = cor(Functional_Diversity, CTN, method = "pearson"))

运行完这段代码,gene_correlations里就会列出每个基因对应的皮尔逊相关系数啦!

举个例子,输出大概是这样的:

# A tibble: 3 × 2
  Human_Gene_Name Pearson_Correlation
  <chr>                         <dbl>
1 A1CF                          0.782
2 AAK1                          0.654
3 AAMP                          0.591

内容的提问来源于stack exchange,提问作者Jack Dean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:48:02