От тегов к тексту столбцов - PullRequest
       6

От тегов к тексту столбцов

1 голос
/ 04 августа 2020

В тексте, который имеет метки форматирования, такие как

data.frame(id = c(1, 2), text = c("something here <h1>my text</h1> also <h1>Keep it</h1>", "<h1>title</h1> another here"))

#   id                                                  text
# 1  1 something here <h1>my text</h1> also <h1>Keep it</h1>
# 2  2                           <h1>title</h1> another here

Как кто-то может вставить текст в разные столбцы в зависимости от того, когда начинается и заканчивается следующий <h1> </h1>. Пример вывода:

data.frame(id = c(1, 2), my_text = c("also", 0), keep_it = c(0, 0), title = c(0, "another here"))

#   id my_text keep_it        title
# 1  1    also       0            0
# 2  2       0       0 another here

вставить 0 вместо NA в текст, который не существует после, или указанный столбец c не существует в строке ввода

1 Ответ

2 голосов
/ 04 августа 2020

A tidyverse решение:

library(tidyverse)

map_dfr(df$text, ~ str_match_all(.x, "<h1>(.*?)</h1>([^<]*)")[[1]] %>%
    as.data.frame %>% select(-1) %>% deframe) %>%
  mutate(across(everything(), ~ str_squish(.x) %>%
    replace(is.na(.x) | .x == "", 0)))

# # A tibble: 2 x 3
#   `my text` `Keep it` title       
#   <chr>     <chr>     <chr>       
# 1 also      0         0           
# 2 0         0         another here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...