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

R语言如何找出insurance数据集与totexp相关性最高的5个变量

最优解决方案

基础R实现(无需额外安装依赖)

  • 第一步:计算totexp与全量变量的相关系数,保留变量名属性
# use参数可根据缺失值处理需求调整,pairwise.complete.obs表示成对删除缺失值
cor_vec <- cor(insurance$totexp, insurance, use = "pairwise.complete.obs")[1, ]

cor()对单列和数据集计算会返回1行n列的矩阵,通过[1, ]转换为带变量名的一维向量,不会丢失变量标识。

  • 第二步:按相关性绝对值降序排序
# 若只需统计正相关,去掉abs()即可
sorted_cor <- sort(abs(cor_vec), decreasing = TRUE)
  • 第三步:提取排除totexp自身后的前5个最高相关变量
# sorted_cor第一个值是totexp与自身的相关系数1,所以从第2位开始取5个
top5_vars <- sorted_cor[2:6]

直接打印top5_vars即可同时看到变量名和对应相关系数。

tidyverse实现(适合链式处理场景)

如果你习惯使用tidyverse生态,可以用更易读的管道写法,直接得到结构化的结果表:

library(dplyr)
library(tidyr)

top5_result <- insurance %>%
  # 计算所有变量和totexp的相关系数
  summarise(across(everything(), ~ cor(., totexp, use = "pairwise.complete.obs"))) %>%
  # 转为长表结构
  pivot_longer(everything(), names_to = "变量名", values_to = "相关系数") %>%
  # 排除totexp自身
  filter(变量名 != "totexp") %>%
  # 按相关性绝对值降序排序
  arrange(desc(abs(相关系数))) %>%
  # 取前5条
  slice_head(n = 5)

返回的结果是标准数据框,可直接用于后续可视化、建模等操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:07