如何追踪R包功能失败的位置?

时间:2011-02-17 21:21:47

标签: debugging r

  

可能重复:
  General suggestions for debugging R?

从R包调用函数时遇到错误。简而言之,

> library(treemap)
> ...
> tmPlot(X,index=c("r1","r2","r3","r4"),vSize="size")
Error in if (maxI == 1) { : missing value where TRUE/FALSE needed

This SO问题提供了更多详细信息。

我在R提示符下键入tmPlot检查了tmPlot的源代码,但是失败的行没有出现在函数中。我认为,这意味着它在由tmPlot调用的某个函数中失败了。

追踪此问题的最佳方式是什么?例如,我可以以某种方式生成堆栈跟踪吗?是否有一个交互式调试器,可以让我逐步查看错误发生的位置?

1 个答案:

答案 0 :(得分:1)

traceback将打印调用堆栈。

traceback()

另外,请查看调试功能的在线帮助。虽然我已经看到了更好的交互式调试器,但是debug(),debugonce()和undebug()提供了一些基本功能

?base::debug