使用我编写的 R 函数时出现错误:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: algorithm did not converge
我做了什么:
glm.fit
.他们是 window()
和 save()
. 我的一般方法包括添加
print
和 stop
命令,并逐行遍历函数,直到我可以找到异常。但是,我不清楚使用代码中出现此错误的那些技术。我什至不确定代码中的哪些函数取决于
glm.fit
.我该如何诊断这个问题?
最佳答案
所以browser()
, traceback()
和 debug()
走进酒吧,但trace()
在外面等待并保持电机运转。
通过插入 browser
在你的函数的某个地方,执行将停止并等待你的输入。您可以使用 n(或 Enter)前进,使用 c 运行整个 block (迭代),使用 f 完成当前循环/函数,或使用 Q 退出;见 ?browser
.
与 debug
,您将获得与浏览器相同的效果,但这会在函数开始时停止执行。相同的快捷方式适用。此功能将处于“调试”模式,直到您使用 undebug
将其关闭(即在 debug(foo)
之后,运行函数 foo
每次都会进入“调试”模式,直到你运行 undebug(foo)
)。
一个更短暂的选择是debugonce
,这将在下一次评估后从函数中删除“调试”模式。traceback
将为您提供函数的执行流程,直至出现问题(实际错误)。
您可以使用 trace
在函数中插入代码位(即自定义函数) ,例如 browser
.这对于包中的函数很有用,您懒得获得折叠得很好的源代码。
关于r - 在 R 中调试的一般建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1169480/