使用我写的R函数时出错:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: algorithm did not converge
Run Code Online (Sandbox Code Playgroud)
我做了什么:
glm.fit.他们是window()和save().我的一般方法包括添加print和stop命令,逐行逐步执行功能,直到找到异常.
但是,我不清楚使用那些在代码中出现此错误的技术.我甚至不确定代码中的哪些函数依赖glm.fit.我该如何诊断这个问题?
我在服务器上运行的R中有许多无人看管的批处理作业,运行后我必须分析作业失败。
我试图捕获错误以将其记录下来并从错误中恢复,但是我无法获得堆栈跟踪(traceback)来记录导致错误的R命令的代码文件名和行号。(愚蠢的)可复制示例:
f <- function() {
1 + variable.not.found # stupid error
}
tryCatch( f(), error=function(e) {
# Here I would log the error message and stack trace (traceback)
print(e) # error message is no problem
traceback() # stack trace does NOT work
# Here I would handle the error and recover...
})
Run Code Online (Sandbox Code Playgroud)
运行上面的代码将产生以下输出:
f()中的simpleError:找不到对象“ variable.not.found”
没有可用的回溯
回溯不可用,其原因已记录在R帮助(?traceback)中:
通过try或tryCatch捕获的错误不会生成回溯,因此输出的是最后一个未捕获的错误(不一定是最后一个错误)的调用顺序。
换句话说:捕获错误tryCatch确实会杀死堆栈跟踪!
我怎么能够
多谢!