Извлечь финансовый год с R Lubridate - PullRequest
0 голосов
/ 05 июня 2018

Я создам несколько дат.

library(lubridate)
x <- ymd(c("2012-03-26", "2012-05-04", "2012-09-23", "2012-12-31"))

Я могу извлечь год и квартал из этих x значений.

quarter(x, with_year = TRUE, fiscal_start = 10)

[1] 2012.2 2012.3 2012.4 2013.1

Но я не могу извлечь только финансовый год.Это не работает, но что будет?

year(x, with_year = TRUE, fiscal_start = 10)

Я получаю следующее сообщение об ошибке:

Ошибка в году (x, with_year = TRUE, fiscal_start = 10): неиспользованные аргументы (with_year = TRUE, fiscal_start = 10)

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018
library(lubridate)
library(data.table)

fiscal_start_month = 10

x <- data.table(Dates = ymd(c("2012-03-26", "2012-05-04", "2012-09-23", "2012-12-31")))
x[, Fiscal_Year := ifelse(month(Dates) >= fiscal_start_month, year(Dates) + 1, year(Dates))]

Это производит:

            Dates Fiscal_Year
1: 2012-03-26        2012
2: 2012-05-04        2012
3: 2012-09-23        2012
4: 2012-12-31        2013
0 голосов
/ 05 июня 2018

Если вы не возражаете против дополнительного шага, вы можете извлечь первые 4 символа из ваших кварталов, чтобы получить только годы.

library(lubridate)

x <- ymd(c("2012-03-26", "2012-05-04", "2012-09-23", "2012-12-31"))

q <- quarter(x, with_year = TRUE, fiscal_start = 10)
q
#> [1] 2012.2 2012.3 2012.4 2013.1

fy <- stringr::str_sub(q, 1, 4)
fy
#> [1] "2012" "2012" "2012" "2013"
...