Если вектор даты имеет двузначные годы, 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 годах. Но есть ли более элегантный и менее подверженный ошибкам метод разбора двухзначных дат, чтобы они обрабатывались правильно в самом процессе анализа?
Обновление: После того, как @JoshuaUlrich указал мне на strptime
, я нашел этот вопрос, который касается проблемы, подобной моей, но используя основание R.
Похоже, что отличное дополнение к обработке даты в R будет каким-то образом справляться с отменой выбора периода в течение двухзначных дат в функциях синтаксического анализа даты.