Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XML包中的readHTMLtable清除站点,不确定错误消息_R - Fatal编程技术网

使用XML包中的readHTMLtable清除站点,不确定错误消息

使用XML包中的readHTMLtable清除站点,不确定错误消息,r,R,我正在使用XML包来收集网站列表。具体来说,我从以下站点的候选人列表中获取评分: 候选人的页面按数字顺序排列,从1开始向上排列。我的第一次尝试,即从前50名候选人中脱颖而出,看起来是这样的 library(xml) library(plyr) url <- paste("http://www.votesmart.org/candidate/evaluations/", 1:50 , sep = "") res <- llply(url, function(i) readHTMLta

我正在使用
XML
包来收集网站列表。具体来说,我从以下站点的候选人列表中获取评分:

候选人的页面按数字顺序排列,从1开始向上排列。我的第一次尝试,即从前50名候选人中脱颖而出,看起来是这样的

library(xml)
library(plyr)

url <- paste("http://www.votesmart.org/candidate/evaluations/", 1:50 , sep = "")
res <- llply(url, function(i) readHTMLtable(i))
这样,我就从这个列表中排除了404生成URL

但是,仍然存在一个问题,该问题是由列表中的许多页面引起的,这会导致此llply命令失败。下面是一个例子

readHTMLTable("http://www.votesmart.org/candidate/evaluations/6")
这导致了错误

Error in seq.default(length = max(numEls)) : 
  length must be non-negative number
In addition: Warning message:
In max(numEls) : no non-missing arguments to max; returning -Inf
但是,这些页面从getXMLErrors命令生成的错误计数与工作页面相同,因此在这方面我无法区分它们


我的问题是——这个错误意味着什么,有没有办法让readHTMLTable返回这些页面的空列表,而不是错误?如果做不到这一点,有没有办法让我的llply语句检查这些页面并跳过那些导致错误的页面

为什么不做一些简单的错误处理

res <- llply(url, function(i) try(readHTMLTable(i)))

res我使用了plyr的try_default,对这种方法的效果印象深刻。我以前从未见过尝试,但这似乎是一个非常优雅的解决我的问题的方法,谢谢!
res <- llply(url, function(i) try(readHTMLTable(i)))