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

在R中如何按两个先后条件筛选皮尔逊相关系数结果数据框?

相关系数筛选实现方案

筛选逻辑

  • 第一步:先排除自相关(Row与Column值相同)的无效记录,筛选出cor值大于0.8的所有特征对
  • 第二步:提取第一步结果中所有出现的非Event特征,匹配每个特征与Event的相关系数,取相关系数最高的对应特征对输出

R语言实现(生信场景常用)

library(dplyr)

# 替换下方cor_df为你自己的相关系数数据框名
# 步骤1:筛选符合阈值的特征对
filter_cor <- cor_df %>%
  filter(Row != Column, cor > 0.8)

# 步骤2:提取所有在高相关对中出现的非Event特征
target_features <- unique(c(filter_cor$Row, filter_cor$Column)) %>%
  setdiff("Event")

# 步骤3:匹配特征与Event的相关度,取最高值对应的记录
result <- cor_df %>%
  filter((Row %in% target_features & Column == "Event") | (Column %in% target_features & Row == "Event")) %>%
  arrange(desc(cor)) %>%
  slice(1)

# 输出结果
print(result)

Python Pandas实现

import pandas as pd

# 替换下方cor_df为你自己的相关系数数据框名
# 步骤1:筛选符合阈值的特征对
filter_cor = cor_df[(cor_df['Row'] != cor_df['Column']) & (cor_df['cor'] > 0.8)]

# 步骤2:提取所有在高相关对中出现的非Event特征
target_features = pd.concat([filter_cor['Row'], filter_cor['Column']]).unique()
target_features = [f for f in target_features if f != 'Event']

# 步骤3:匹配特征与Event的相关度,取最高值对应的记录
event_cor = cor_df[((cor_df['Row'].isin(target_features)) & (cor_df['Column'] == 'Event')) | 
                   ((cor_df['Column'].isin(target_features)) & (cor_df['Row'] == 'Event'))]
result = event_cor.sort_values('cor', ascending=False).head(1)

# 输出结果
print(result)

内容的提问来源于stack exchange,提问作者Keith Sanders

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 15:54:03