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

如何在R中保留月度首个交易日数据,转换为月度数据集?

解决日度转月度数据保留每月首个有效观测的问题

你的代码问题在于仅筛选每月1号的记录,若该日非交易日(无数据),对应月份会直接丢失。以下是两种可靠的解决方案,确保每个月都能保留首个有效观测值:

方法一:按年-月分组取首行

library(dplyr)
library(lubridate)

# 先确保DATE列是日期格式(若原数据不是则执行)
daily <- daily %>% mutate(DATE = ymd(DATE))

# 按年份和月份分组,提取每组第一行
monthly <- daily %>%
  group_by(year(DATE), month(DATE)) %>%
  slice_head(n = 1) %>%
  ungroup()

方法二:用floor_date生成年月分组列

monthly <- daily %>%
  mutate(ym = floor_date(DATE, "month")) %>% # 将日期转为当月第一天,作为分组依据
  group_by(ym) %>%
  slice_head(n = 1) %>%
  ungroup() %>%
  select(-ym) # 可选:删除临时分组列

原理说明

  • group_by(year(DATE), month(DATE)) 或 group_by(ym) 会把数据按「年-月」维度拆分
  • slice_head(n = 1) 提取每组的第一行,也就是该月最早出现的有效观测,完美避开“首日非交易日”的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:55:18