如何编辑和调试R库源

Ben*_*ann 18 debugging r

我在我的R脚本中包含了一个名为blotter的库,里面有一个bug.我是否有一种简单的方法来编辑源代码以尝试调试问题?

Jyo*_*rya 22

查找tracebrowser函数,它们是R中用于调试的基本工具.假设您要编辑功能源foo,然后说

trace("foo",edit=TRUE)
Run Code Online (Sandbox Code Playgroud)

将在编辑器中打开foo的源代码,供您更改.但是,这是用于交互式调试; 包中的源文件不会更改.因此,一旦找到错误,您需要将更改的包源文件更改为永久性.


rcs*_*rcs 11

这样的功能在R的开发版本中实现(2010年7月16日):

r-devel增加了一个新设施,供包装作者进行试验.

我们的想法是将修改后的代码从包源插入到正在运行的包中,而无需重新安装.因此,人们可以在快速循环中进行更改,测试,更改等.

该机制是评估一些源代码文件,返回一个环境对象,它是代码的快照.在此环境中,可以将函数和方法插入到当前会话中的包的环境中.插入使用trace()机制,因此可以恢复原始代码.

一步到位版本是:

insertSource("mySourceFile.R", package = "myPackage", functions = "foo")

有关更多详细信息,请参阅此帖子:在包中插入和测试修订的函数