如何在lubridate中表达当月15日以实现日期判断的if-else逻辑
R 日期判断实现方案
你可以通过lubridate内置的日期处理函数生成当月15日的日期对象,替换你代码里的15TH_OF_THE_MONTH变量即可,两种常用实现方式如下:
- 方案1:取当月首日加14天生成当月15日
library(lubridate) # 生成当月15日 month_15th <- floor_date(Sys.Date(), unit = "month") + days(14) # 执行判断,ifelse会自动把日期转成数值,结束后要转回日期格式 res <- as.Date(ifelse(Sys.Date() > month_15th, Sys.Date(), Sys.Date() - months(1)), origin = "1970-01-01") print(res)
- 方案2:直接拼接当前年、月、日生成当月15日
library(lubridate) month_15th <- make_date(year = year(Sys.Date()), month = month(Sys.Date()), day = 15) res <- as.Date(ifelse(Sys.Date() > month_15th, Sys.Date(), Sys.Date() - months(1)), origin = "1970-01-01") print(res)
注意:如果需要把15日当天归为「晚于等于15日」的分支,把判断运算符从
>改成>=即可。
内容的提问来源于stack exchange,提问作者sa90210
相关产品推荐
相关产品推荐

