Как извлечь текст из определенных мест в файле?

#r #text

Вопрос:

Вот мои данные:

текст Содержание 1. Миссис ДЕФГ.Содержание 2. **8 Мистер DBC что-то еще. Содержание 3.

Как я могу получить фрейм данных, как показано ниже:

9 Г-н АБКД. Содержание 1 9 Миссис ДЕФГ. Содержание 2 8 Г-н DBC. Содержание 3

3 строки, 4 переменные (номер, мистер/миссис, имя, содержание)

Имена в моих данных всегда после «Мистер» или «Миссис» и всегда в верхнем регистре. Всегда есть период до того контента, который я хотел.

Вообще говоря, я хочу знать, кто что сказал (с табличкой с номером)

Спасибо!

Ответ №1:

Мы можем сделать

 library(stringr)
library(tidyr)
library(dplyr)
tibble(col1 = text) %>% 
   separate_rows(col1, sep = "(?<=Content\d\.)\s ") %>% 
   mutate(grp = readr::parse_number(col1)) %>%
   fill(grp) %>% 
   mutate(col1 = str_c(grp, str_remove(col1, "^[*] \d \s*"),
            sep=" "), grp = NULL) %>%
    pull(col1)
 

-выход

 [1] "9 Mr.ABCD. Content1."               "9 Mrs. DEFG.Content2."              "8 Mr.DBC something else. Content3."
 

данные

 text <- "**9 Mr.ABCD. Content1. Mrs. DEFG.Content2. **8 Mr.DBC something else. Content3."