R语言数据分组与管道操作:按月份和区域计算平均温度
正确聚合地区月度平均温度的R语言实现方案
你的原代码存在两个核心问题:
- 仅按
MONTH分组,没有包含REGION,无法区分不同地区的月度数据 - 在dplyr管道中直接调用
mean()不符合语法,需要用summarise/summarize函数生成聚合结果
以下是符合需求的正确实现:
# 先安装并加载dplyr包(首次使用需执行安装命令) # install.packages("dplyr") library(dplyr) # 生成目标聚合数据集 test <- temps1962.82 %>% # 同时按月份和地区分组,确保每个组对应「某地区某月」的所有数据 group_by(MONTH, REGION) %>% # 计算该组的平均温度,na.rm=TRUE处理缺失值,重命名列名匹配预期结构 summarise(`Avg temp` = mean(AVG.TEMP, na.rm = TRUE), .groups = "drop") %>% # 调整列名大小写,和预期结构完全一致 rename(Month = MONTH, Region = REGION)
关键说明:
group_by(MONTH, REGION):这是实现「各地区每月聚合」的核心,确保每个分组对应一个地区的一个月份summarise():dplyr中用于生成聚合结果的标准函数,必须用它包裹聚合计算逻辑na.rm = TRUE:避免数据中存在缺失值时导致结果出现NA,可根据实际数据情况选择保留或移除.groups = "drop":聚合完成后取消分组状态,返回普通数据框,方便后续操作rename():将原始大写列名调整为你预期的大小写格式
内容的提问来源于stack exchange,提问作者Jjohn
相关产品推荐
相关产品推荐

