运行直到没有错误发生

时间:2015-12-15 16:48:59

标签: r function try-catch

我想执行一个使用互联网连接grep一些在线数据的功能。由于连接不是很稳定,因此需要多次尝试才能成功运行该功能。 因此,我想重复或循环该功能,直到它起作用并保存结果。

tryCatch似乎是一个合适的功能,但到目前为止我还没有找到解决问题的方法。 这是功能:

annotations(snp = 'rs1049434', output = 'snpedia') 

有时会发生此错误:

Error in annotations(snp = "rs1049434", output = "snpedia") : 
  server error: (502) Bad Gateway

基本代码示意图:

while( tmp == F){
  ifelse(result <- function worked, tmp <- T, tmp <- F)}

我需要输出result这是一个data.frame。

答案(参见nicola评论中的链接):

bo=0
while(bo!=10){
  x = try(annotations(snp = 'rs1049434', output = 'snpedia'),silent=TRUE)
  if (class(x)=="try-error") {
    cat("ERROR1: ", x, "\n")
    Sys.sleep(1)
    print("reconntecting...")
    bo <- bo+1
    print(bo)
  } else
  break 
}

0 个答案:

没有答案