我希望按财务年度(4月1日至3月31日)来组织几个变量。
library(lubridate)
StartDate <- ymd(c("2017-03-26", "2018-07-04", "2019-02-23", "2010-10-31", "1989-06-30"))
我已经能够从这些日期中提取年份和季度,并使用lubridates季度函数将财政年度指定为第4个月。但我希望将财政年度变量的格式设置为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)
答案 0 :(得分:0)
tibble::tibble(StartDate = StartDate) %>%
dplyr::mutate(finstart = ymd(paste0(year(StartDate), "-04-01")),
finyear = ifelse(StartDate >= finstart, year(finstart) + 1, year(finstart)))