Извлечь числовое значение перед строкой в ​​R - PullRequest
0 голосов
/ 14 ноября 2018

Я возился со строками регулярных выражений и strsplit, но не могу понять, как решить мою проблему.

У меня есть коллекция HTML-документов, которые всегда будут содержать фразу "people own these".Я хочу извлечь номер, непосредственно предшествующий этой фразе.то есть «732 234 человека владеют ими» - я надеюсь запечатлеть число 732 234 (включая запятую, хотя мне все равно, будет ли она удалена).Число и фраза всегда заключены в.Я пытался использовать Xpath, но это казалось даже сложнее, чем выражение регулярных выражений.Любая помощь или совет с благодарностью!

пример строки:> 742 811 человек владеют этими <</p>

-> 742 811

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Попробуйте использовать str_extract_all из библиотеки stringr:

str_extract_all(data, "\\d{1,3}(?:,\\d{3})*(?:\\.\\d+)?(?= people own these)")
0 голосов
/ 14 ноября 2018

Не могли бы вы попробовать следующее.

val <- "742,811 people own these"
gsub(' [a-zA-Z]+',"",val)

Вывод будет следующим.

[1] "742,811"

Объяснение: с использованием функции gsub (глобальное замещение) R здесь. Здесь ставится условие, где оно должно заменить все вхождения пространства маленькими или заглавными алфавитами на NULL для переменной val.

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