我已經在我的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. 的Eclipse:編輯源並繼續調試
- 2. 調試時編輯源代碼
- 3. 如何在R中編輯數據庫?
- 4. 如何編輯Graphite Python源文件進行調試?
- 5. 如何減少編輯,編譯和調試周期?
- 6. R-如何編輯image.plot
- 7. Win32資源編輯器庫?
- 8. 如何編輯setup.exe資源
- 9. 如何編輯資源?
- 10. rpy2和R調試
- 11. 如何調試Grails和插件源IDEA
- 12. 從單個項目和代碼庫編輯,調試和構建c dll和exe
- 13. 如何調試使用調試信息編譯的共享庫
- 14. 如何編輯文檔庫
- 15. 如何IP2Location編輯庫setup.py
- 16. Android調試器 - 類文件編輯器 - 未找到源
- 17. Java編輯Java源代碼的Eclipse調試快捷方式
- 18. Eclipse「類文件編輯器」調試時找不到源
- 19. 如何編輯R中的ctree標籤
- 20. 如何編輯R中的數據?
- 21. 編輯與R中
- 22. 查看,編輯和保存r中大量圖的編輯
- 23. 如何創建一個HTML和CSS「自己試試」編輯器
- 24. 如何編輯IReport中的數據源?
- 25. 如何蝕刻編輯源查找
- 26. 如何開始編輯pidgin源代碼?
- 27. 如何在編輯後自動「源」〜/ .bashrc?
- 28. 如何編輯Livecode Github源代碼?
- 29. 調試和生產資源
- 30. R:找到一個模式和編輯
[r修改和重建包]的可能重複(https://stackoverflow.com/questions/34800331/r-modify-and-rebuild-package) – Scarabee 2017-10-13 10:08:21