r - 在 R 中调试的一般建议

标签 r debugging r-faq

使用我编写的 R 函数时出现错误:

Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: algorithm did not converge 

我做了什么:
  • 单步执行函数
  • 添加 print 以找出错误发生在哪一行,这表明两个函数不应使用 glm.fit .他们是 window()save() .

  • 我的一般方法包括添加 printstop命令,并逐行遍历函数,直到我可以找到异常。

    但是,我不清楚使用代码中出现此错误的那些技术。我什至不确定代码中的哪些函数取决于 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/

    相关文章:

    Java - 绘图库

    c# - Visual Studio 2008 Release Installer 打包调试二进制文件

    r - 为什么 `vapply` 比 `sapply` 更安全?

    r - 为什么这些数字不相等?

    javascript - jQuery: :first 比 .className:first 快吗?

    r - 在 R 中设置永久的默认 CRAN 镜像

    r - 使用plot()然后使用lines()时,线条未显示在R的折线图上

    r - For 循环创建重复 ID block 的序列

    r - 使用R中的函数抓取网站,返回 "subscript out of bounds"错误

    java - Android Studio 堆栈跟踪不可点击