我在 R 中有一个数据框,其中有一列(日期格式),其条目如下:2020-04-01
week()
我可以使用R 中的函数(使用一月至十二月日历)从每个日期中提取周数(1 到 52) 。
我现在想做同样的事情,但针对财政周,即四月至四月日历。
我尝试了几个选项,但似乎没有快速的方法来实现这一点。有人知道在 R 中是否有标准方法可以做到这一点吗?
这是我正在研究的一个想法草案......
fiscal_week <- function(date) {
date <- as.Date(date)
fiscal_start <- ymd(paste(year(date) - ifelse(month(date) < 4, 1, 0), "04-01", sep = "-"))
week_num <- as.integer((date - fiscal_start) / 7) + 1
return(week_num)
}
df <- data.frame(Date = as.Date(c("2020-04-01", "2020-05-01", "2020-06-01")))
df$Fiscal_Week <- sapply(df$Date, fiscal_week)
print(df)
我认为关键是要记住圈数年并使用整数除法。
该函数的正确版本(考虑圈数年)是