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

如何用R语言生成日期区间内每日一行的数据集?

在R中展开日期区间为每日记录

你可以通过日期格式转换 + 生成日期序列 + 展开数据这三步实现需求,下面提供两种常用方案:

方案一:使用tidyverse工具链(推荐,代码更直观)

先加载需要的包,然后处理日期并生成每日记录:

# 加载依赖包
library(dplyr)
library(lubridate)
library(tidyr)

# 导入你的数据
df <- structure(list(id = c(1L, 3L, 4L), date_in = c("13May2022 0:00:00", 
"10Nov2020 0:00:00", "25Feb2020 0:00:00"), date_out = c("03Jul2022 0:00:00", 
"15Nov2020 0:00:00", "05Apr2020 0:00:00"), days = c(51, 5, 40
)), class = "data.frame", row.names = c(NA, -3L))

# 步骤1:将字符型日期转换为日期时间格式
df <- df %>%
  mutate(
    date_in = dmy_hms(date_in),
    date_out = dmy_hms(date_out)
  )

# 步骤2:分组生成每日日期序列并展开
result <- df %>%
  group_by(id) %>%
  # 为每个id生成date_in到date_out的每日序列,存储为列表列
  mutate(daily_date = list(seq(date_in, date_out, by = "day"))) %>%
  # 展开列表列为多行记录
  unnest(daily_date) %>%
  ungroup() %>%
  # 可选:将datetime类型转换为纯Date类型(去掉时间部分)
  mutate(daily_date = as.Date(daily_date)) %>%
  # 调整列顺序(按需选择)
  select(id, daily_date, date_in, date_out, days)

方案二:使用Base R(无需额外安装包)

如果不想加载第三方包,可以用原生R函数实现:

# 导入数据
df <- structure(list(id = c(1L, 3L, 4L), date_in = c("13May2022 0:00:00", 
"10Nov2020 0:00:00", "25Feb2020 0:00:00"), date_out = c("03Jul2022 0:00:00", 
"15Nov2020 0:00:00", "05Apr2020 0:00:00"), days = c(51, 5, 40
)), class = "data.frame", row.names = c(NA, -3L))

# 步骤1:转换日期格式
df$date_in <- lubridate::dmy_hms(df$date_in)
df$date_out <- lubridate::dmy_hms(df$date_out)

# 步骤2:生成每个id的日期序列
date_sequences <- mapply(function(start, end) seq(start, end, by = "day"), 
                         df$date_in, df$date_out)

# 步骤3:重复id和其他列,合并为最终数据集
result_base <- data.frame(
  id = rep(df$id, sapply(date_sequences, length)),
  daily_date = as.Date(unlist(date_sequences)),
  date_in = rep(df$date_in, sapply(date_sequences, length)),
  date_out = rep(df$date_out, sapply(date_sequences, length)),
  days = rep(df$days, sapply(date_sequences, length))
)

两种方案最终都会生成包含每日记录的数据集,每条记录对应date_in到date_out区间内的一天,同时保留原数据的id、date_in、date_out和days字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:01:07