R编程中的tryCatch



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

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

当我输入:Error(5+b)。它不反映Flag=0。

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

在代码中,Flag的作用域是错误处理程序的局部作用域。使用<<-在全局环境下进行分配。

如果发生错误,您可以在这里返回一个字符串('error'),并检查它的值是否返回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

相关内容

  • 没有找到相关文章

最新更新