R脚本行号错误?

Dav*_*d B 6 debugging r

我在一年前找到了这篇文章,我正在使用R version 2.11.1 (2010-05-31),但仍然收到没有行号的错误消息.

有解决方案吗

Jor*_*eys 6

那里给出的答案仍然有效.从脚本返回行号不是那么简单,但R可以为您提供有关可以找到错误的位置的更多信息.

您可以使用错误选项将信息保存在文件中,例如:

options(error = quote({
  sink(file="error.txt");
  dump.frames();
  print(attr(last.dump,"error.message"));
  traceback();
  sink();
  q()}))
Run Code Online (Sandbox Code Playgroud)

如果您在某处可用文件的名称,则可以使用函数findLineNum().如果您有错误消息,您可以执行以下操作:

dump.frames()
x <- attr(last.dump,"error.message")
ll <- gsub("Error in (.*) : .*","\\1",x)
lln <- findLineNum(srcfile,ll)
Run Code Online (Sandbox Code Playgroud)

  • +1谢谢,有点令人失望的是它在R中默认还没有实现.在我看来这是一个非常理想的功能. (6认同)