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

如何在R中用aggregate函数计算不同年份同月的平均值?

解决方案

先读取你的CSV数据:

data <- read.csv("你的文件路径.csv")

接下来核心是从Date列(yyyymm格式)里提取出月份,之后就能用aggregate正常分组计算了,这里给你几种实用的方法:

方法一:Base R 原生处理

直接通过字符串截取或者数值运算提取月份:

# 如果Date是字符型,取最后两位作为月份
data$Month <- substr(data$Date, 5, 6)
# 如果Date是数值型,用取余运算获取月份
data$Month <- data$Date %% 100

然后用aggregate按月份分组求平均:

monthly_avg <- aggregate(Mean ~ Month, data = data, FUN = mean)

方法二:用lubridate包处理日期

要是习惯用专业日期包,lubridate能让日期处理更直观:

library(lubridate)
# 把yyyymm格式转为年月对象,再提取月份
data$Month <- month(ym(data$Date))
# 同样用aggregate计算均值
monthly_avg <- aggregate(Mean ~ Month, data = data, FUN = mean)

方法三:tidyverse风格写法

如果偏好dplyr的链式语法,也可以这么写:

library(dplyr)
monthly_avg <- data %>%
  mutate(Month = substr(as.character(Date), 5, 6)) %>%
  group_by(Month) %>%
  summarise(平均均值 = mean(Mean))

运行完上面任意一种方法,monthly_avg里就会包含1-12月各自的平均数值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:22:06