循环直到没有错误

时间:2015-07-17 15:11:10

标签: r

我想运行一段有时会产生错误的代码。

例如:

a<-matrix(NA,ncol=1,nrow=sample(1:5,1))
a[sample(1:5,1),1]<-10

我想重复这些命令,直到它们运行没有错误。

是否可以将它嵌入到while()循环中,该循环继续运行直到出现错误,并且当两行可以无误地执行时停止?

1 个答案:

答案 0 :(得分:5)

tryCatch的语法类似于

result = tryCatch({
    expr
}, warning = function(warning-condition) {
    warning-handler-code
}, error = function(error-condition) {
    error-handler-code
}, finally={
    cleanup-code
})

您可以将代码封装在tryCatch内的无限循环中

while(1==1)

这两个概念可以帮助您解决问题。使用这些,您可以将其写为

boolFalse<-F
while(boolFalse==F)
{
  tryCatch({
    a<-matrix(NA,ncol=1,nrow=sample(1:5,1))
    a[sample(1:6,1),1]<-10;
    boolFalse<-T
  },error=function(e){
  },finally={})
}