Конвертировать любую строку в дату в R - PullRequest
0 голосов
/ 12 апреля 2020

Есть ли какая-нибудь функция, которая будет пытаться угадать дату из строки? Я нашел lubridate:: parse_date_time(), что звучит так, как будто это сработает, но вам нужно указать точный формат, который вы ожидаете. Это хорошо, если все ваши строки имеют одинаковый формат, но не если это введенные человеком данные, где все возможно. Я ищу поведение, подобное Excel, где все, что напоминает дату, автоматически преобразуется в дату.

Например, c("April 11, 2020", "Apr 11", "4/11/20", "04-11", "April 11, 1 p.m.", "04/11/2020, 1:00pm") должно быть 2020-04-11. Мне просто нужно создать сложное регулярное выражение или есть какой-то более разумный метод?

1 Ответ

1 голос
/ 12 апреля 2020

Опираясь на комментарий @ jpmam1, похоже, что вы можете просто использовать lubridate::parse_date_time с неограниченным количеством шаблонов. Если вы укажете достаточно, он будет соответствовать чему угодно.

mydates <- c("April 11, 2020", "Apr 11", "4/11/20", "04-11", "April 11, 1 p.m.", "04/11/2020, 1:00pm")
parse_date_time(mydates,c("mdy","mdY","Bdy","bd","md","Bdh","mdYHM"))
#[1] "2020-04-11 00:00:00 UTC" "0000-04-11 00:00:00 UTC" "2020-04-11 00:00:00 UTC" "0000-04-11 00:00:00 UTC" "2020-04-11 01:00:00 UTC"
#[6] "2020-04-11 01:00:00 UTC"

Это соответствует годовой дате с 0000, что вы могли бы исправить позже.

...