首页 文章

如何编辑和调试R库源

提问于
浏览
18

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

3 回答

  • 3

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

    trace("foo",edit=TRUE)
    

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

  • 11

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

    r-devel增加了一个新设施,供包的作者进行试验 . 我们的想法是将修改后的代码从包源插入到正在运行的包中,而无需重新安装 . 因此,人们可以在快速循环中进行更改,测试,更改等 . 该机制是评估一些源代码文件,返回一个环境对象,它是代码的快照 . 在此环境中,可以将函数和方法插入到当前会话中的包的环境中 . 插入使用trace()机制,因此可以恢复原始代码 . 一步到位版本是:

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

    有关详细信息,请参阅此帖子:Inserting and testing revised functions in a package

  • 21

    您的问题是否有一种简单的方法可以让我编辑源代码来尝试调试问题?有明显的答案:使用来源,卢克!

    blotterR-Forge上的一个包,你可以从那里获得blotter sources here . 这是查看开源的标准方法,并可能帮助它修复错误 .

相关问题