Dav*_*uer 8 packages r function
我正在开发一个R包
当我调试特定功能或一组功能时,测试该功能的最佳方法是什么?
每次我想检查我的更改时,是否必须使用source('function.R')或R CMD build?
(关联emacs ess键绑定的额外功劳)
另请参阅http://github.com/hadley/devtools/,它提供了一些工具来简化此任务.
例如,在对源代码进行更改之后,使用以下函数构建,安装和重新加载包install():
library(devtools)
install("package_name")
Run Code Online (Sandbox Code Playgroud)
devtools还可以更容易:
重新加载完整包:
load_all("pkg")
Run Code Online (Sandbox Code Playgroud)使用roxygen2创建或更新文档
document("pkg")
Run Code Online (Sandbox Code Playgroud)运行所有脚本/inst/test/:
test("pkg")
Run Code Online (Sandbox Code Playgroud)构建和R CMD检查:
check("pkg")
Run Code Online (Sandbox Code Playgroud)看一下?insertSource,这是R 2.12.0中的一个新功能,以及该帮助页面的另请参见部分中的其他功能.另外,请检查?assignInNamespace您的包是否具有命名空间.
以上假设您正在讨论更新和调试R源代码,而不是编译代码.
我通常使用该source()路由来加载我正在改进/调试的新版本的函数,以及通常的R调试工具.但是我还没有在我的包中找到命名空间.多年来,我的手指已经习惯了C-c C-lemacs + ess中的键绑定来寻找缓冲区.
小智 5
您可能想看一下'mvbutils'包.我一直用它来实时编辑我的包; 我可以在加载包时添加,删除和编辑功能和文档,并且更改会反映在已加载的版本中,在已安装的版本中(因此它们将保留在下一个R会话中),以及[当我告诉时]它在"源包"中.当我想将压缩版本分发给其他人时,我只通过R CMD重新构建.为了测试代码,我使用'debug'包,它在加载的包上工作正常.
我甚至使用'mvbutils'来编辑'mvbutils',有时可能会有些毛茸茸.
'mvbutils'文档可以真正完成此操作的完整演示,但理论上现有的doco应该向您展示如何继续.
无法帮助你使用Emacs,对不起......