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

如何在R的DataFrame中补全起止日期间的行并填充对应值

补全时间序列并生成累积值的R实现

首先加载所需包并定义原始数据:

library(tidyverse)

df <- tibble::tribble(
      ~name,        ~date, ~value,
   "Corpus", "2019-03-01",    0.8,
   "Corpus", "2019-08-01",    1.6,
  "Cameron", "2019-12-01",   1.32,
  "Cameron", "2020-08-01",   1.98
  )

可以通过以下步骤实现需求:

  • 转换日期格式为标准日期类型,便于时间序列操作
  • 按name分组后,扩展出覆盖全局时间范围的月度日期序列
  • 向前填充value值,实现累积效果,同时将启动前的缺失值替换为0

完整代码如下:

df_processed <- df %>%
  # 转换字符日期为标准日期类型
  mutate(date = ymd(date)) %>%
  # 按name分组,生成覆盖全局最早到最晚日期的月度序列
  group_by(name) %>%
  expand(date = full_seq(c(min(df$date), max(df$date)), 1, "month")) %>%
  # 左连接原始数据,保留所有扩展出的日期记录
  left_join(df %>% mutate(date = ymd(date)), by = c("name", "date")) %>%
  # 向下填充value,实现数值的累积保留
  fill(value, .direction = "down") %>%
  # 将启动前的缺失值替换为0
  replace_na(list(value = 0)) %>%
  ungroup()

运行后得到的df_processed即为符合要求的结构,可直接用于面积图绘制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:15:41