Как извлечь дату из текста

Я попытался извлечь дату из следующего текста. К сожалению, он продолжает предупреждать меня, и в результате получается NA.

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

"IRA-401K Investment Assets Under Management (AUM)  As of July 31, 2018 BMG Funds  
$217,743,573 BMG BullionBars  $45,176,561 TOTAL  $262,920,134 Physical Holdings Download 
Scotiabank BMG BullionBars List Download Brinks BMG BullionBars List Holdings by Ounces As 
of July 31, 2018  Gold Bars 21,132.496 Silver Bars 453,531.574 Silver Coins 
80,500 Platinum Bars"

В тексте указана следующая дата: 31 июля 2018 г. Эти даты встречаются в тексте дважды.

Я использовал следующий код для извлечения дат из текста.

test_take <- lapply(cleanurl_text, parse_date_time, orders = "mdy", 
             locale = Sys.setlocale('LC_TIME', locale = "English_Canada.1252"))

Я получаю следующее сообщение об ошибке:

Warning message: All formats failed to parse. No formats found.

Когда я включаю точное = ИСТИНА

test_take <- lapply(as.character(cleanurl_text), parse_date_time, orders = "mdy", 
       locale = Sys.setlocale('LC_TIME', locale = "English_Canada.1252"), exact = TRUE)

Я получаю следующее предупреждение:

Warning message: 1 failed to parse.

Полученный объект по-прежнему содержит NA.

1
0
226
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующее регулярное выражение может извлекать дату в опубликованном формате.

pattern <- paste(month.name, collapse = "|")
pattern <- paste0("(", pattern, ")\\s\\d{1,2}.{1,2}\\d{4}")

m <- gregexpr(pattern, cleanurl_text)
regmatches(cleanurl_text, m)
#[[1]]
#[1] "July 31, 2018" "July 31, 2018"

Обратите внимание, что это можно сделать всего в одной строке кода, regmatches(gregexpr(.)), но я выбрал две строки, чтобы сделать ее более читаемой.

Спасибо за ваш быстрый ответ. Если вы прокрутите вправо, вы также сможете найти вторую дату. Он начинается сразу после "Holdings by Ounces"

Cricketer 10.08.2018 17:30

@Cricketer Готово. Посмотри, если это так.

Rui Barradas 10.08.2018 18:23

Другие вопросы по теме