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

如何在R中按年份计算相关系数并将结果存入数据框

问题分析与解决方案

你的代码问题出在两个核心点:

  • 仅用group_by()标记了分组,但没有对每个分组执行统计计算,所以赋值后的变量本质还是分组后的原数据集,没有生成汇总结果
  • 单独调用的cor()是直接对整个数据集计算相关系数,完全没用到分组逻辑

修正后的代码(按分组计算相关系数与决定系数)

# 先加载dplyr包(未加载的话执行这行)
library(dplyr)

# 按Year.x和YTD_Range.x分组,计算相关系数与决定系数并生成数据框
xmasCount_Amt_Coef <- xmasCount_Amt_df_ByCheckDate %>% 
  group_by(Year.x, YTD_Range.x) %>% 
  summarize(
    correlation = cor(n, Amount, use = "complete.obs"),  # 处理缺失值,可按需调整use参数
    r_squared = correlation^2,  # 决定系数为相关系数的平方
    .groups = "drop"  # 取消分组状态,得到普通数据框
  )

# 查看结果
print(xmasCount_Amt_Coef)

关键说明

  • summarize()是dplyr分组汇总的核心函数,会根据group_by()指定的分组,对每组单独计算统计量并生成新数据框
  • cor()的use参数用于处理缺失值:"complete.obs"表示仅使用无缺失值的行计算,可根据数据情况替换为"pairwise.complete.obs"等
  • .groups = "drop"能让结果回到普通数据框结构,避免后续操作受分组状态影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:35:08