R: lubridate :: fast_strptime возвращает значение, отличное от base :: strptime - PullRequest
0 голосов
/ 11 июля 2020

Я пытался преобразовать столбец символов даты и времени в огромном фрейме данных в POSIXct для дальнейшей обработки. Пример столбца даты и времени: «среда, 01 июля, 00:10:32 UT C 2020».

Из-за большого количества строк (> 5 миллионов строк) я пробовал fastPOSIXct в пакете fasttime, чтобы ускорить его. Я планировал преобразовать символ даты и времени в формат POSIXlt, а затем использовать функцию fastPOSIXct для обработки.

В процессе я обнаружил, что base::strptime и lubridate::fast_strptime возвращают разные результаты:

> base::strptime("Wed Jul 01 00:10:32 UTC 2020", format = '%a %b %d %H:%M:%S UTC %Y', tz = "UTC")
[1] "2020-07-01 00:10:32 UTC"

и

> lubridate::fast_strptime("Wed Jul 01 00:10:32 UTC 2020", format = '%a %b %d %H:%M:%S UTC %Y', tz = "UTC")
[1] NA

Почему fast_strptime вернул NA? Есть ли более быстрый способ ускорить процесс преобразования формата?

Спасибо!

1 Ответ

0 голосов
/ 11 июля 2020

Это потому, что функция fast_strptime не принимает "a" в качестве применимого формата. Если вы удалите аргумент имени дня недели, он вернет те же результаты.

fast_strptime("Jul 01 00:10:32 UTC 2020", format = '%b %d %H:%M:%S UTC %Y', tz = "UTC")
...