在R中的空单元格前折叠字符串

问题描述 投票:0回答:1

我想在标签“ p”内刮掉所有具有“ content-text__container”类的内容。在抓取时,某些句子排在下面。我想折叠,因此该段仅在一个单元格内。为此,我需要折叠“ 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 e 123(下图)中的内容应仅在一行中。“示例的打印屏幕”

r web-scraping paste rvest
1个回答
0
投票

[不熟悉网络抓取。但是,如果我了解您的问题,就假设您有:

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 = "+")表示我想在每行之间留一个空格以成为+。您也可以使用空格("")或空格(" ")。

© www.soinside.com 2019 - 2024. All rights reserved.