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

R语言:基于双数据框统计AC事件簇前后2周的上报记录数量

R语言生成目标数据框解决方案

核心逻辑

  1. 先聚合AC事件数据:按公园、事件簇编号分组,计算每个簇的首个事件日期、末次事件日期、簇内事件总数
  2. 匹配上报数据:逐簇统计对应公园、对应时间范围内的上报记录数

实现代码

# 加载依赖包,仅需dplyr即可完成
library(dplyr)

# 第一步:聚合得到每个AC事件簇的基础信息
cluster_basic <- AC_clusters %>%
  group_by(Park, Cluster) %>%
  summarise(
    Start_date = min(Date),
    End_date = max(Date),
    Number_AC = n(),
    .groups = "drop" # 分组运算完成后取消分组
  )

# 第二步:统计每个簇前后2周的上报记录数,得到最终结果
reports_before_after_AC_clusters <- cluster_basic %>%
  rowwise() %>%
  mutate(
    # 统计簇首日期前14天内的上报数(不含簇首当天)
    Number_reports_before = sum(
      Reports_per_park_per_day_2$Park == Park &
      Reports_per_park_per_day_2$Date >= Start_date - 14 &
      Reports_per_park_per_day_2$Date < Start_date
    ),
    # 统计簇末日期后14天内的上报数(不含簇末当天)
    Number_reports_after = sum(
      Reports_per_park_per_day_2$Park == Park &
      Reports_per_park_per_day_2$Date > End_date &
      Reports_per_park_per_day_2$Date <= End_date + 14
    )
  ) %>%
  ungroup()

优化说明

如果你的数据量超过10万行,可改用data.table或fuzzyjoin包的关联逻辑提升运算效率,小数据集直接运行上述代码即可得到和预期完全一致的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:48:05