在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