R 编程中的 tryCatch

tryCatch in R Programming

在 R 中,我想创建一个 return Flag=0 的函数,如果它遇到任何错误:

Error<-function(x){
       tryCatch(x,
       error=function(e{
       Flag=0
         }
      )
}

当我输入时:错误(5+b)。它不反映 Flag=0.

Flag <- 1

tryCatch(
  5+b,
  error=function(e) { Flag <<- 0}
)

Flag
[1] 0

在您的代码中,Flag 的范围是错误处理程序的本地范围。使用 <<- 在全局环境中进行赋值。

如果发生错误,您可以在此处 return 一个字符串 ('error') 并将其值检查为 return 1/0。

Error<-function(x){
  y <- tryCatch(x,error=function(e) return('error'))
  as.integer(y != 'error')
}

Error(sqrt('a'))
#[1] 0
Error(sqrt(64))
#[1] 1