如何提取XML属性并将其处理为数据框?

时间:2017-09-01 14:07:31

标签: r xml dataframe xml-attribute

我是R编程的初学者。

我想从Squawka抓取足球数据并将其放在数据框中,以便进行分析(足球分析的新生爱好),更准确地说是从这些页面中http://eredivisie.squawka.com/willem-ii-vs-psv/10-08-2014/dutch-eredivisie/matches

在Stack Overflow上我发现了一个关于如何执行此操作的帖子:how to scrape this squawka page?

不幸的是,当我实现上述线程中给出的用于将XML属性/数据处理成数据帧的代码(见下文)时,我收到以下错误消息:

  

"错误(函数(...,deparse.level = 1,make.row.names = TRUE,   stringsAsFactors = default.stringsAsFactors()):的数字   参数列与“

不匹配
data <- lapply(example, function(x){ 
  if(length(x['event']) > 0){
    res <- lapply(x['event'], function(y){
    matchAttrs <- as.list(xmlAttrs(y))
    matchAttrs$start <- xmlValue(y['start']$start)
    matchAttrs$end <- xmlValue(y['end']$end)
    matchAttrs
  })
  return(do.call(rbind.data.frame, res))
}
}
)

结果应该类似于:

player_id           mins secs minsec team type  start       end
event         531    4   39    279   44 Failed 73.1,87.1 97.9,49.1
event5        311    6   33    393   31 Failed 92.3,13.1 93.0,31.0
event1        376    8   57    537   31 Failed  97.7,6.1 96.7,16.4
event6        311   13   50    830   31 Failed  99.5,0.5 94.9,42.6
event11       311   14   11    851   31 Failed  99.5,0.5 93.1,51.0
event7        311   17   41   1061   31 Failed 99.5,99.5 92.6,50.1

我已经尝试过在Stack Overflow上发现的其他一些处理类似情况的解决方案,但直到现在我还没有设法找到合适的解决方案。

0 个答案:

没有答案