将季度解析为日期,使用 "qr()" 到季度的最后一天
parse quarters to dates, using "qr()" to last day in quarter
我的任务有点类似于, but I'm using lubridate。我有一些 string-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"
您可以将每个日期加上 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_date
和 unit
作为 "quarter"
来获取下一个季度的日期,然后从中减去 1 天。
ceiling_date(yq(quaters), 'quarter') - 1
我们可以使用 as.yearqtr
来自 zoo
library(zoo)
as.Date(as.yearqtr(quaters), 1)
#[1] "2018-12-31" "2019-03-31" "2019-06-30" "2019-09-30" "2019-12-31" "2020-03-31"
数据
quaters <- c("2018Q4", "2019Q1", "2019Q2", "2019Q3", "2019Q4", "2020Q1")
我的任务有点类似于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"
您可以将每个日期加上 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_date
和 unit
作为 "quarter"
来获取下一个季度的日期,然后从中减去 1 天。
ceiling_date(yq(quaters), 'quarter') - 1
我们可以使用 as.yearqtr
来自 zoo
library(zoo)
as.Date(as.yearqtr(quaters), 1)
#[1] "2018-12-31" "2019-03-31" "2019-06-30" "2019-09-30" "2019-12-31" "2020-03-31"
数据
quaters <- c("2018Q4", "2019Q1", "2019Q2", "2019Q3", "2019Q4", "2020Q1")