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

R语言如何基于周度tsibble数据计算并添加月度需求平均值列

你可以通过dplyr的分组聚合逻辑实现月度平均需求计算,并新增列到原tsibble对象中,具体操作如下:

方法1:基于现有year、Month字段计算

这是最直接的方式,按年份+月份分组避免跨年同月数据混淆:

# 加载依赖包,已安装可跳过
library(dplyr)

# 新增月度平均需求列
Demandts <- Demandts %>%
  # 按年份、月份双维度分组,确保同一年的同一个月数据分为一组
  group_by(year, Month) %>%
  # 计算当前组的需求平均值,na.rm=TRUE可忽略缺失值避免返回NA
  mutate(monthly_avg_demand = mean(Demand, na.rm = TRUE)) %>%
  # 取消分组,避免后续操作受分组逻辑影响
  ungroup()

方法2:基于Date字段计算(更稳妥)

如果担心year、Month字段存在数据错误,可以直接用日期字段按月份聚合:

library(dplyr)
library(lubridate)

Demandts <- Demandts %>%
  # 将日期对齐到当月第一天,作为分组依据
  group_by(month_start = floor_date(Date, unit = "month")) %>%
  mutate(monthly_avg_demand = mean(Demand, na.rm = TRUE)) %>%
  ungroup()

后续ggplot绘图参考

如果你需要绘制月度需求走势图表,可以先汇总为每月一行的数据集再绘图,避免重复数据干扰:

library(ggplot2)

# 汇总月度数据集
monthly_summary <- Demandts %>%
  group_by(year, Month) %>%
  summarise(avg_demand = mean(Demand, na.rm = TRUE), .groups = "drop")

# 绘制分年份月度平均需求柱状图
ggplot(monthly_summary, aes(x = factor(Month), y = avg_demand, fill = factor(year))) +
  geom_col(position = "dodge") +
  labs(x = "月份", y = "平均需求", fill = "年份")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:57:03