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

在R语言中日期相减后如何将日期取整至当月首日

R语言获取上月首日的实现方法

你需要的是获取上月的第一天,而非当前日期减一个月后的对应日期,这里提供几种简洁的实现方式:

方法一:使用lubridate的floor_date函数

先计算当前日期减一个月的结果,再将日期向下取整到当月首日,代码如下:

library(lubridate)
last_month_first <- floor_date(Sys.Date() - months(1), unit = "month")

测试示例:若执行日期为2023-02-04,运行后会返回"2023-01-01",完全符合需求。

方法二:直接构造上月首日

先获取当前月份的首日,再减去一个月得到上月首日,逻辑更直观:

library(lubridate)
# 获取当前月份首日,再减一个月得到上月首日
last_month_first <- floor_date(Sys.Date(), unit = "month") - months(1)

这种方式跳过了“当前日期减一个月”的中间步骤,直接定位到上月第一天,同样能处理所有月份边界情况(比如2月、31号等特殊日期)。

方法三:基础R实现(无需lubridate包)

如果不想依赖lubridate,也可以用基础R的日期函数实现:

current_date <- Sys.Date()
# 先得到当前月份首日,再往前推一个月
current_month_first <- as.Date(format(current_date, "%Y-%m-01"))
last_month_first <- current_month_first - months(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:30:43