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

R语言自定义3个月统计周期起始日期绘制伤害数据折线图

解决方法

你之前使用round_date()默认按照自然季度边界对齐分组,因此会将3月末、4月初的数据拆分到不同周期,要实现自定义起始点的3个月周期分组,可以用R基础的cut.Date()函数实现,具体步骤如下:

1. 依赖包加载

library(tidyverse)
library(lubridate)

2. 自定义周期分组计算

# 定义3个月周期的基准起始日
base_date <- ymd("2019-03-25")
# 生成周期断点:从基准日开始每3个月一个节点,覆盖所有数据的日期范围
max_date <- max(keep_long_format$Date)
breaks <- seq.Date(from = base_date, to = max_date + months(3), by = "3 months")

# 给每条数据匹配所属周期
keep_long_format <- keep_long_format %>%
  mutate(
    # 匹配所属周期的起始日期,right=FALSE设置左闭右开区间规则
    Trimonthly_start = cut(Date, breaks = breaks, right = FALSE, labels = head(breaks, -1)),
    Trimonthly_start = as.Date(Trimonthly_start),
    # 可选:生成直观的周期范围文本,方便后续折线图标注
    Trimonthly_label = paste0(Trimonthly_start, "至", Trimonthly_start + months(3) - days(1))
  )

3. 分组聚合统计

Pivot.Trimonthly <- keep_long_format %>%
  group_by(Trimonthly_start, Trimonthly_label, Injury.Cause) %>%
  summarise(Trimonthly.sum = sum(n), .groups = "drop")

关键参数说明

  • right = FALSE:设置区间判断规则为左闭右开,即每个周期范围为[周期起始日, 周期起始日+3个月),刚好匹配你要求的首个周期2019-03-25至2019-06-24的范围
  • 自定义breaks参数:完全按照你指定的起始点生成周期边界,不会出现默认自然季度拆分数据的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:36:05