Вычисление номера месяца в R - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь получить номер месяца даты на основе некоторого базового c дополнения к другим элементам в моей функции r. Однако я не могу правильно вычислить, поскольку кажется, что он обрабатывает месяц как «число» и не признает, например, что «13» недействительный месяц. Я новичок в r, но надеюсь, что есть какое-нибудь простое решение.

Вот строка, о которой идет речь:

end_month <- month(last_covered_date) + interval - 1

рассматриваемая переменная в 'last_covered_date', и она была преобразована на дату, используя as.Date. interval - это число, например 1,2,3, и затем мы всегда вычитаем из него 1, чтобы получить нужный нам месяц. Кажется, все работает нормально, пока мы не начнем с декабря - в этом случае интервал равен 2 ... так что это 12 + 2 = 14, а минус 1 становится равным 13. Мне нужно как-то заставить его признать, что 13 должно быть '01' ... попытался вставить оператор case_when, чтобы заставить его работать, но безуспешно.

1 Ответ

2 голосов
/ 14 июля 2020

Я бы использовал встроенную математику даты для вычисления даты ...

some_date = as.Date("2020-01-01")
one_month_from_some_date = some_date + months(1) # 2020-02-01
one_hundred_months_from_some_date = some_date + months(100) # 2028-05-01
...