如何在R中使用dplyr提取最近3个月或6个月的时间序列数据
R dplyr 时间区间数据筛选方案
你已经加载了dplyr和lubridate包,可直接按以下方案执行筛选:
1. 提取2021-06-01至2021-09-30的全量数据
直接用filter()匹配日期区间即可:
# 方法1:直接指定起止日期 target_data <- mydata %>% filter(datex >= ymd("2021-06-01"), datex <= ymd("2021-09-30")) # 也可以用between()简化写法 target_data <- mydata %>% filter(between(datex, ymd("2021-06-01"), ymd("2021-09-30")))
2. 动态筛选最近3个月的全量数据
如果要基于数据集的最大日期自动计算最近3个月区间,不需要手动修改起止日期,用以下写法:
recent_3m <- mydata %>% filter(datex >= max(datex) - months(3))
注:如果要包含完整自然月,可调整起始边界为当月首日:datex >= floor_date(max(datex) - months(3), unit = "month")
3. 动态筛选最近6个月的全量数据
逻辑和3个月筛选完全一致,仅调整月份参数即可:
recent_6m <- mydata %>% filter(datex >= max(datex) - months(6))
同样如果需要对齐完整自然月,替换为floor_date(max(datex) - months(6), unit = "month")作为起始边界即可
内容的提问来源于stack exchange,提问作者Faryan
相关产品推荐
相关产品推荐

