【发布时间】:2020-01-29 15:02:53
【问题描述】:
我希望按财政年度(4 月 1 日至 3 月 31 日)组织几个变量。
library(lubridate)
StartDate <- ymd(c("2017-03-26", "2018-07-04", "2019-02-23", "2010-10-31", "1989-06-30"))
我已经能够从这些日期中提取年份和季度,将财政开始指定为第 4 个月,使用 lubridates Quarter 函数。但我希望财政年度变量采用 2017/18、2018/19 等格式。
我还发现了 date2fy 函数,该函数有效:
date2fy(StartDate)
但它的默认设置是从 7 月 1 日到 6 月 30 日的澳大利亚财政年度,并且无法弄清楚如何将其更改为从 4 月 1 日开始。
我已经编写了以下内容并且它可以工作,但是有没有更好/更短的方法来做到这一点?
DEP$Start_Fin_Year <- as.numeric(format(DEP$StartDate, "%Y")) - (format(DEP$StartDate, "%m") <= "03")
library(stringr)
DEP$Start_Fin_Year2 <- str_sub(DEP$Start_Fin_Year,start=-2)
DEP$Start_Fin_Year2 <- as.numeric(DEP$Start_Fin_Year2)
DEP$Start_Fin_Year3 <- (DEP$Start_Fin_Year2 + 1)
DEP$Start_Fin_Year4 <- paste0(DEP$Start_Fin_Year, "/", DEP$Start_Fin_Year3)
【问题讨论】:
-
这与您的方法相同,但由于您已经在使用
lubridate,您可以使用 lubridate funsyr <- year(StartDate) - (month(StartDate) <= 3); paste(yr, (yr + 1) %% 1e3, sep = '/')保存一些字符
标签: r