使用 R 中的 Rvest 从 table 中删除多个 header 行

Remove multiple header rows from table with Rvest in R

我正在尝试从体育参考中抓取 table:

cu_url <- "https://www.sports-reference.com/cbb/schools/creighton/"

我能够像这样将 table 放入数据框中:

cu_html <- read_html(cu_url)
cu_table <- html_nodes(cu_html, "table")
cu_info <- data.frame(html_table(cu_table))
colnames(cu_info) <- cu_info[1,]
cu_info <- cu_info[-1,]

但是,我注意到 header 行在整个数据中重复出现。例如,第 22 行再次将 header 显示为一行。有没有有效的方法来删除这些?在 HTML 中,header 行都有一个 table 行 () class of "thead" 所以我想知道我是否可以让 rvest 忽略这些但我尝试使用时失败了! =.

感谢任何想法。如果我需要删除实际的 header 才能使其正常工作,我会但更愿意保留那个并只删除重复项。

您只能保留 Rk 列中只有数字的行。

library(rvest)
library(dplyr)

cu_url %>%
  read_html %>%
  html_nodes('table') %>%
  html_table() %>%
  .[[1]]  %>%
  setNames(make.unique(unlist(.[1,]))) %>%
  slice(-1L) %>%
  filter(grepl('^\d+$', Rk)) -> result

result