Свернуть строки перед пустой ячейкой в ​​R - PullRequest
0 голосов
/ 21 января 2020

Я хочу очистить весь контент, имеющий класс «content-text__container» внутри тега «p». В то время как выскабливание, некоторые из предложений находятся в ряду ниже. Я хочу свернуть, поэтому абзац находится внутри только одной ячейки. Для этого мне нужно свернуть содержимое перед пустой ячейкой в ​​столбце «checagem».

url <- "https://g1.globo.com/fato-ou-fake/noticia/2018/10/05/veja-o-que-e-fato-ou-fake-nas-falas-dos-presidenciaveis-no-debate-da-globo.ghtml"

texto <- url %>%
  read_html() %>%
  html_nodes("p.content-text__container") %>%
  html_text() %>%
  str_trim() %>%
  as.data.frame() %>%
  `colnames<-`("checagem") %>%
  mutate(checagem = toupper(checagem),
         checagem = rm_accent(checagem)) %>%
  mutate(rotulo = ifelse(str_detect(checagem, "VEJA O PORQUE:"), 
                         checagem, NA))

Например, это означает, что содержимое в строке 121, 122 и 123 (изображение ниже) должно быть только в одной строке. Print screen of the example

1 Ответ

0 голосов
/ 21 января 2020

Не так хорошо знакомы с webscraping. Но если я понимаю вашу проблему, давайте предположим, что у вас есть:

dat <- data.frame(checogem = c("A", "A1", "3", "", "G", "GS", "", "F1", "F2", "F3"))

Тогда ваша цель - свернуть все значения между пустыми значениями вместе.

Один из методов:

dat %>% mutate(gr = cumsum(checogem == "")) %>% group_by(gr) %>% summarise(new_checogem = paste(checogem, collapse = "+")) %>% ungroup()

использование paste(..., collapse = "+") означает, что я хочу, чтобы расстояние между каждой строкой было +. Вы также можете использовать пробел ("") или пробел (" ").

...