Debugging 如何跟踪R包函数失败的位置?

Debugging 如何跟踪R包函数失败的位置?,debugging,r,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 问题提供了更多细节 我通过在R提示符下键入tmPlot检查了tmPlot的源代码,但函数中没有出现失败的行。这意味着,我假设它在tmPlot

可能重复:

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

> library(treemap)
> ...
> tmPlot(X,index=c("r1","r2","r3","r4"),vSize="size")
Error in if (maxI == 1) { : missing value where TRUE/FALSE needed
问题提供了更多细节

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


找到这个的最好方法是什么?例如,我可以以某种方式生成堆栈跟踪吗?是否有交互式调试器允许我单步执行并查看错误发生的位置?

traceback将打印调用堆栈

traceback()
另外,请查看调试功能的联机帮助。虽然我见过更好的交互式调试器,但debug()、debugonce()和undebug()提供了一些基本功能

和的副本,您的意思是“包”而不是库。
?base::debug