Извлечение N количество совпадений из текстовой строки в R? - PullRequest
0 голосов
/ 05 ноября 2019

Я использую stringr в R, и у меня есть строка текста, в которой перечислены заголовки новостных статей. Я хочу извлечь эти заголовки, но только первое число N заголовков, которые появляются. В моем примере строки текста у меня есть три заголовка статьи, но я хочу извлечь только первые две.

Как я могу сказать str_extract собирать только первые 2 заголовка? Спасибо.

Вот мой текущий код с примерами текстов.

library(stringr)

Вот пример текста.

texting <- ("Time: Friday, September 14, 2018 4:34:00 PM EDT\r\nJob Number: 73591483\r\nDocuments (100)\r\n 1. U.S. Stocks Rebound Slightly After Tech-Driven Slump\r\n   Client/Matter: -None-\r\n   Search Terms: trade war or US-China trade or china tariff and not dealbook\r\n   Search Type: Terms and Connectors\r\n   Narrowed by:\r\n             Content Type                         Narrowed by\r\n             News                                 Sources: The New York Times; Content Type: News;\r\n                                                  Timeline: Jan 01, 2018 to Dec 31, 2018\r\n 2. Shifting Strategy on Tariffs\r\n   Client/Matter: -None-\r\n   Search Terms: trade war or US-China trade or china tariff and not dealbook\r\n 100. Example")
titles.1 <- str_extract_all(texting, "\\d+\\.\\s.+")
titles.1

Текущий код возвращает все три совпадения в строке:

[[1]]

[1] "1. U.S. Stocks Rebound Slightly After Tech-Driven Slump"

[2] "2. Shifting Strategy on Tariffs"                        

[3] "100. Example"

Я хочу, чтобы он собирал только первые два совпадения.

1 Ответ

3 голосов
/ 05 ноября 2019

Вы можете использовать опцию simplify = TRUE, чтобы получить вектор как результат, а не список. Затем просто выберите первые N элементов из вектора

titles.1 <- str_extract_all(texting, "\\d+\\.\\s.+", simplify = TRUE)[1:2]
...