我已经在我的R脚本中包含了一个名为blotter的库,它有一个bug。有没有一种简单的方法可以让我编辑源代码来尝试和调试问题?如何编辑和调试R库源
回答
查找trace
和browser
函数,它们是R中用于调试的基本工具。假设你要编辑的功能foo
源,然后说
trace("foo",edit=TRUE)
将在编辑器中打开foo的来源为你改变。但是,这是用于交互式调试的;包中的源文件不会更改。因此,一旦发现错误,您需要更改软件包源文件以使更改永久生效。
嗨!我已经下载了一个软件包,并且知道我必须编辑的功能 - 我无法在所有文件中找到它。什么是正确的方式来做到这一点?你能指出我正确的方向吗? – vagabond 2016-07-12 21:36:33
的这种特征在R的开发版本中实现(2010年7月16日):
一个新的设施已被添加到R-devel的通过的 包作者试验。
这个想法是将修改过的代码从软件包源代码插入到 运行包中,而无需重新安装。所以人们可以在一个快速循环中改变,测试,改变, 等等。
该机制是评估一些源代码文件,返回一个 环境对象,它是代码的快照。从这个 环境中,可以将功能和方法插入到当前会话中的包的环境 中。该插入使用trace() 机制,因此可以恢复原始代码。
一步法版本是:
insertSource("mySourceFile.R", package = "myPackage", functions = "foo")
看到这个职位的更多细节:Inserting and testing revised functions in a package
你的问题有没有为我编辑源到一个简单的方法尝试并调试问题?有明显的答案:使用源码,卢克!
blotter是一个包R-Forge从哪里可以得到blotter sources here。这是查看Open Source的标准方式,可能还会帮助解决错误。
好的,我该怎么做?通常我可以称之为'图书馆',我假设我无法处理这些资源。我下载了源代码,但有近40个文件。我是否每个人都运行“源代码”以便将它们放入我的脚本中? – 2010-08-02 23:25:28
@Ben McCann假设没有C或FORTRAN代码,你可以提取R文件,'source()'它们并从那里开始工作(每次你改变文件时你必须提供它或者将它复制/粘贴到R中)。一旦你有一切工作,你可以将文件复制回包二进制文件并构建它。我在这里的博客文章中描述了一个快速的分步构建R包:http://danganothererror.wordpress.com/2010/07/23/building-an-r-package-under-windows-without- cc-or-fortran-code/ – 2011-06-07 14:04:35
- 1. 调试时编辑源代码
- 2. 如何在R中编辑数据库?
- 3. 如何减少编辑,编译和调试周期?
- 4. 如何编辑资源?
- 5. 如何编辑setup.exe资源
- 6. 如何调试Grails和插件源IDEA
- 7. 如何调试使用调试信息编译的共享库
- 8. Android调试器 - 类文件编辑器 - 未找到源
- 9. Eclipse“类文件编辑器”调试时找不到源
- 10. 如何编辑R中的数据?
- 11. 查看,编辑和保存r中大量图的编辑
- 12. 如何创建一个HTML和CSS“自己试试”编辑器
- 13. 如何在编辑后自动“源”〜/ .bashrc?
- 14. 如何开始编辑pidgin源代码?
- 15. 调试和生产资源
- 16. R:找到一个模式和编辑
- 17. 是否有任何开源库来生成和编辑.xls和.ppt文件?
- 18. 如何调试r从r调用的c#代码?
- 19. 在R的XML库中调试htmlParse
- 20. 如何在调试时启用表单编辑?
- 21. 如何在开始编辑代码时自动停止调试?
- 22. 如何在visual studio中调试web-api时编辑javascript文件?
- 23. 如何从Sublime文本编辑器调试Java应用程序
- 24. 调试WPF窗口阻碍编辑器
- 25. 用于调试的单独编辑器
- 26. 带调试功能的D编辑器
- 27. Python调试:实时编辑代码
- 28. 最佳XSLT编辑器&|调试器
- 29. xcode调试编辑器区域
- 30. 如何调试x86汇编
[r修改和重建包]的可能重复(https://stackoverflow.com/questions/34800331/r-modify-and-rebuild-package) – Scarabee 2017-10-13 10:08:21