Существует ли более элегантный способ преобразования двухзначных лет в четырехзначные с помощью lubridate?
Если вектор даты имеет двузначный год,mdy()
превращает годы между 00 и 68 в годы 21-го века, а годы между 69 и 99 - в годы 20-го века. Например:
library(lubridate)
mdy(c("1/2/54","1/2/68","1/2/69","1/2/99","1/2/04"))
дает следующий вывод:
Multiple format matches with 5 successes: %m/%d/%y, %m/%d/%Y.
Using date format %m/%d/%y.
[1] "2054-01-02 UTC" "2068-01-02 UTC" "1969-01-02 UTC" "1999-01-02 UTC" "2004-01-02 UTC"
Я могу исправить это после факта, вычтя 100 из неправильных дат, чтобы превратить 2054 и 2068 в 1954 и 1968. Но есть ли более элегантный и менее подверженный ошибкам метод парсинга двузначных дат, чтобы они правильно обрабатывались в сам процесс разбора?
Update: После того, как @JoshuaUlrich указал мне наstrptime
я нашелэтот вопрос, который имеет дело с проблемой, аналогичной моей, но с использованием базы R.
Кажется, что хорошим дополнением к обработке даты в R было бы несколько способов обработки отсечений выбора столетия для двузначных дат в функциях парсинга дат.