首页 > 解决方案 > 将季度解析为日期,使用“qr()”到季度的最后一天

问题描述

我的任务与这个问题有点相似,但我正在使用。我有一些字符串quarters-我需要将其翻译成日期,但是要像这样获得季度的第一天,

# library(lubridate)
quaters <- c("2018Q4", "2019Q1", "2019Q2", "2019Q3", "2019Q4", "2020Q1")
 
yq(quaters)
# [1] "2018-10-01" "2019-01-01" "2019-04-01" "2019-07-01" "2019-10-01"
# [6] "2020-01-01"

我想要本季度的最后一天。像这样,

yq(quaters, last) "!! NOT WOKRING CODE
# [1] "2018-12-31" "2019-03-31" "2019-06-30" "2019-09-30" "2019-12-31"
# [6] "2020-03-31"

标签: rlubridate

解决方案


您可以在每个日期加上 3 个月并减去 1 天以获得每个季度的最后一天。

library(lubridate)
quaters <- c("2018Q4", "2019Q1", "2019Q2", "2019Q3", "2019Q4", "2020Q1")

yq(quaters) %m+% months(3) - 1
#[1] "2018-12-31" "2019-03-31" "2019-06-30" "2019-09-30" "2019-12-31" "2020-03-31"

另一个类似的选项是使用ceiling_datewith unitas"quarter"来获取下一个季度的日期,然后从中减去 1 天。

ceiling_date(yq(quaters), 'quarter') - 1

推荐阅读