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

如何将时间段对应的均值填充到时段内各日期生成日度数据集

实现方案

你需要的核心逻辑是将每条记录的[startdate, enddate]日期区间展开为连续单日序列,同时将对应区间的Conc值同步到所有单日记录上,以下提供两种适配不同数据规模的实现方案:

方案1:tidyverse 实现(代码可读性高,适合中小规模数据集)

# 加载依赖包
library(tidyverse)

# 假设你的原始数据集名为df
df_daily <- df %>%
  rowwise() %>%
  # 对每行生成从开始到结束的完整日期序列
  mutate(Date = list(seq(startdate, enddate, by = "1 day"))) %>%
  # 展开列表列为普通行
  unnest(Date) %>%
  # 保留需要的字段,如有其他字段可自行添加到选择列表中
  select(Date, Conc)

方案2:data.table 实现(运行效率极高,适合超大规模数据集)

# 加载依赖包
library(data.table)

# 将数据集转为data.table格式
setDT(df)

# 按行展开日期区间
df_daily <- df[, .(Date = seq(startdate, enddate, by = "1 day"), Conc = Conc), by = 1:nrow(df)][, !"nrow"]

两种方案输出结果和你提供的预期示例完全匹配,且会原样保留原数据中的NA值。如果你的原始数据存在重叠的日期区间,可在展开后根据业务需求自行做去重或聚合处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:09:01