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

如何在R中基于日期生成含缺失周且标注每周周一的周频次表

R 周频次统计补全缺失周的实现方案

你可以通过生成完整周序列后左关联统计结果的方式实现需求,代码逻辑如下:
首先加载依赖包:

library(tidyverse)
library(lubridate)

处理原始数据并转换日期格式:

# 导入原始数据
raw_data <- data.frame(date = c("7/29/2021 21:18", "7/6/2021 20:37", "7/23/2021 20:11", "7/23/2021 21:35", 
                            "7/23/2021 21:42", "7/23/2021 21:47", "10/11/2021 14:45", "10/11/2021 15:57", 
                            "10/11/2021 16:23", "7/29/2021 15:52", "9/7/2021 14:36", "8/31/2021 21:05", 
                            "8/25/2021 18:22", "6/28/2021 14:52", "10/8/2021 19:34", "7/19/2021 15:38", 
                            "10/27/2021 21:09", "10/8/2021 15:56", "9/21/2021 17:20", "8/25/2021 20:42", 
                            "8/30/2021 20:28", "5/20/2021 14:58", "11/1/2021 21:09", "11/1/2021 20:15", 
                            "8/5/2021 16:17", "6/30/2021 20:12", "5/14/2021 17:36", "5/19/2021 20:40", 
                            "5/20/2021 21:06", "5/19/2021 20:59"))

# 转换日期格式,匹配每条记录所属周的周一日期
raw_data <- raw_data %>%
  mutate(full_date = mdy_hm(date),
         # week_start = 1 表示将周一设为一周的起始日,需要周日起始可改为0
         week_monday = floor_date(full_date, unit = "week", week_start = 1))

生成覆盖全时间范围的周序列表:

# 取时间范围的首尾周一
min_week <- min(raw_data$week_monday)
max_week <- max(raw_data$week_monday)

# 生成所有周的基准表,附带周编号和格式化日期
full_weeks <- tibble(week_monday = seq.Date(min_week, max_week, by = "7 days")) %>%
  mutate(Num = week(week_monday),
         Date = format(week_monday, "%m/%d/%Y"))

关联统计结果,缺失周计数补0:

result <- full_weeks %>%
  left_join(raw_data %>% count(week_monday, name = "Count"), by = "week_monday") %>%
  replace_na(list(Count = 0)) %>%
  select(Num, Date, Count)

输出的result就是符合要求的频次表,该方案优势如下:

  • 以周起始日期为匹配基准,避免周数计算规则不一致导致的匹配误差
  • 自动覆盖时间范围内的所有周,无需手动补全周编号
  • 兼容跨年时间序列,不会出现不同年份同周号匹配错误的问题
  • 周起始规则可灵活调整,适配不同统计标准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:54:03