Tenho um quadro de dados em R com uma coluna (formato de data) com entradas como esta:2020-04-01
Posso extrair o número da semana (1 a 52) de cada uma dessas datas usando a week()
função em R (usando o calendário jan-dec).
Quero fazer a mesma coisa agora, mas para a semana fiscal, ou seja, o calendário abril-abril.
Tentei algumas opções, mas não parece haver uma maneira rápida de fazer isso. Alguém sabe se há uma maneira padrão de fazer isso em R?
Aqui está um rascunho de ideia em que eu estava trabalhando...
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)
Acredito que o segredo é ter em mente os anos transacionais e usar a divisão inteira.
Uma versão correta da função (considerando anos de volta) é