【发布时间】:2019-10-10 00:17:07
【问题描述】:
如果您查看棒球参考网站并单击球队和击球,您会看到他们可以选择将表格转换为 CSV,但是当 URL 不适用于 read.csv() 时,我该如何获取它们
我正在尝试使用来自棒球参考.com 的特定球队的rvest 包导入击球数据。我只想包括守场员并省略投手、重复的列名和网站从数据生成的团队总数。如果我可以只使用 CSV,我就不会遇到这个问题,但 html_table() 只会从网站上抓取原始表格,而删除带有值的列只会弄乱数据。
library(rvest)
#Goals
#Remove unwanted rows
#Remove pitcher batting stats
#San Fransisco Giants
giantsBatting <- read_html('https://www.baseball-
reference.com/teams/SFG/2019-batting.shtml#team_batting::none')
giantsCSV <- giantsBatting%>%
html_nodes('table')%>%
html_table()
giantsDF<-as.data.frame(giantsCSV)
giantsDF<-giantsDF[!(giantsDF$Pos=='P'& giantsDF$Pos=='Pos'),]
print(giantsDF)
我希望输出具有一组列名(该表在第 9-10 行以及之后的投手有三组)并删除投手和球队总统计数据。
实际输出不会省略所有投手,也不会删除额外的列名标题。
【问题讨论】:
-
您不能在同一行中同时包含“P”和“Pos”。你可能需要
!giantsDF$Pos %in% c("P", "Pos") -
把
&改成|,giantsDF[!(giantsDF$Pos=='P' | giantsDF$Pos=='Pos'), ]就可以得到你想要的输出
标签: r web-scraping rvest