使用 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
我正在尝试从体育参考中抓取 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