Web抓取的数据不会合并或拆分

时间:2016-02-24 03:25:38

标签: r

开展个人挑战,学习如何从互联网上抓取信息。我有三种不同的来源,特别是网球数据。其中一个数据集不会拆分或合并。似乎单元格/观察结果被描述为字符串,但在匹配,拆分,合并等时不会起作用。有关如何将此数据分割的任何提示(即播放器>播放器名字和播放器最后名称)。如果我能够获得这种洞察力,那么合并应该相对容易。

elo = htmlParse("http://tennisabstract.com/reports/atp_elo_ratings.html")
class(elo)
elo.table = readHTMLTable(elo, header=T, which=5,stringsAsFactors=F)

1 个答案:

答案 0 :(得分:0)

而不是使用我喜欢直接指定表格,所以如果网站在我感兴趣的表格上面添加一个表格,它将不会破坏我的代码。我刚进去并手动设置了列的类。

library(RCurl)
library(XML)
library(dplyr)

elo = htmlParse("http://tennisabstract.com/reports/atp_elo_ratings.html")

elo.table = readHTMLTable(elo, header=TRUE, stringsAsFactors=FALSE)

# Drop out the duplicate header
Table <- elo.table$reportable[-1,]


Table %>%
  transmute(
    Rank = as.numeric(Rank)
    ,Player
    ,PlayerFirst = gsub('(.*)\\s(.*)', '\\1', Player)
    ,PlayerLast = gsub('(.*)\\s(.*)', '\\2', Player)
    ,Age = as.numeric(Age)
    ,Elo = as.numeric(Elo)
    ,PeakMatch = `Peak Match`
    ,PeakYear = as.numeric(gsub('([0-9]{,4})\\s(.*)', '\\1',PeakMatch))
    ,PeakResult = gsub('([0-9]{,4})\\s(.*)\\s([QFRS132648]{1,4})', '\\3',PeakMatch)
    ,PeakMatch = gsub('([0-9]{,4})\\s(.*)\\s([QFRS132648]{1,4})', '\\2',PeakMatch)
    ,PeakAge = as.numeric(`Peak Age`)
    ,PeakElo = as.numeric(`Peak Elo`)
  )