我想执行一个使用互联网连接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
}