указание формата as.Date возвращает NA в R - PullRequest
0 голосов
/ 25 мая 2018

У меня есть следующий DF:

date <- c("2017-10-11","2018-04-02","2017-05-03")
df <- data.frame(date)

Следующий код не может отформатировать его как дату, вместо этого возвращая NA:

df$date <- as.Date(df$date,format='%Y/%m/%d')

Следующий код успешно форматирует его какdate:

df$date <- as.Date(df$date)

Я указал формат as.Date (как в первом коде as.Date) в других проектах, и он работал для меня раньше.Существует множество ответов на подобные вопросы об as.Date, возвращающих NA, но я не могу найти ни одного, который объясняет, почему мой первый код as.Date не работает в этой ситуации, а мой второй -.Мне не нужно указывать формат для моих целей, но я хотел бы понять, почему первая строка кода не работает.

1 Ответ

0 голосов
/ 25 мая 2018

Значением по умолчанию для format аргумента функции as.Date является "%Y-%m-%d", что соответствует формату date столбца df.

Следовательно, df$date <- as.Date(df$date) работает отлично.

Справка R-Studio описывает аргумент format как:

формат

Строка символов.Если он не указан, он попытается "%Y-%m-%d", затем "%Y/%m/%d" на первом элементе, отличном от NA, и выдаст ошибку, если ни один из них не работает.В противном случае обработка выполняется через strptime

, но df$date <- as.Date(df$date,format='%Y/%m/%d') будет не работать.Причина в том, что разделитель /, упомянутый как часть format, отсутствует в столбце данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...