as.POSIXct не интерпретирует дату 19/10/2008

#r #datetime #formatting #posixct

#r #дата и время #форматирование #posixct

Вопрос:

Хорошо, это странно… У меня есть столбец, полный дат, но когда я проводил анализ ggplot2 , он продолжал выдавать мне предупреждение:

Предупреждающие сообщения: 1: Удалена 1 строка (строки), содержащая пропущенные значения (geom_path). 2: Удалены 1 строки, содержащие пропущенные значения (geom_point).

Когда я пошел искать, дата 19/10/2008 была заменена на NA когда я это сделал as.POSIXct() . Когда я изолирую, я получаю тот же результат:

 > as.POSIXct("19/10/2008", format = "%d/%m/%Y")
[1] NA
  

Однако то же самое не происходит для 19/10/2009 or 19/05/2008 или 18/10/2008 or 20/10/2008 и, вероятно, многих других. На самом деле, я не нашел дату, которая имеет такое же свойство… Почему это происходит? И как я могу это исправить? Это вообще можно исправить?

РЕДАКТИРОВАТЬ: я не знаю, что это делает, но меня попросили добавить это:

 > Sys.getlocale("LC_TIME")
[1] "en_US.UTF-8"
> Sys.timezone()
[1] "America/Sao_Paulo"
  

Комментарии:

1. Пожалуйста, добавьте результаты Sys.getlocale("LC_TIME") и Sys.timezone() к вашему вопросу.

2. Выполнено. Почему это необходимо?

3. Как обычно, проблема в DST. Эта дата является началом летнего времени в Бразилии. Поскольку вы неявно указываете 00:00:00, и это время не существовало из-за изменения времени, вы получаете NA .

4. В любом случае, почему вы используете as.POSIXct , а не as.Date используете?

5. as.POSIXct создает объект даты и времени. as.Date создает объект date.