我有初步的每月签证数据(2017年9月至2020年11月),希望与官方公布的会计年度数字进行比较。我将月份存储为yearmon对象,并希望在新列中标识联邦财政年度(从10月开始)。
使用以下代码,我可以轻松地做到这一点:
library(tidyverse)
library(zoo)
IVdata_FY <- IVdata_final %>%
mutate(
fy = case_when(
month <= "Sep 2017" ~ "FY17",
month >= "Oct 2017" & month <= "Sep 2018" ~ "FY18",
month >= "Oct 2018" & month <= "Sep 2019" ~ "FY19",
month >= "Oct 2019" & month <= "Sep 2020" ~ "FY20",
month >= "Oct 2020" ~ "FY21"
)
)
但是,如果我拥有跨越更多会计年度的数据,那么这种手工方法将过于繁琐且容易出错。
是否有一种简单的方法来确定会计年度,而不必指定每个会计年度的时间表?我的直觉是,这将涉及动物园如何存储Yearmon数据,但是我一直无法弄清楚我可以使用什么代码。
我们假设会计年度在9月结束,因此与10月,11月和12月相对应的会计年度是下一个日历年,而对于其他月份,该会计年度与该日历年相同。
通过将3/12添加到输入yearmon
对象来将输入向前推三个月,以便将十月,十一月和十二月推入下一个日历年,但没有其他月份,然后格式化:
library(zoo)
ym <- yearmon(2020 + 0:11/12) # test data: Jan '20, Feb '20, ..., Dec '20
format(ym + 3/12, "FY%y")
## [1] "FY20" "FY20" "FY20" "FY20" "FY20" "FY20" "FY20" "FY20" "FY20" "FY21"
## [11] "FY21" "FY21"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句