我对一些 R 包感兴趣,想了解它是如何工作的,是否有任何工具可以逐步运行包中的方法并打印中间输出?
4 回答
前两个答案已经告诉您基本 R 和附加包可以做什么。
就 IDE 而言,您有两种选择:
Eclipse的StatET 插件为此提供了一些功能(我没有使用过)。
ESS for Emacs 集成了最新的 ESS 版本
ess-tracebug
,它也可以做到这一点。这是ess-tracebug 仍然是第三方项目而不是ESS的一部分时的一些文档。虽然我是 ESS 用户,但我还没有尝试过。
以下是 ess-tracebug 的帮助,说明它可以做什么:
Documentation:
Default ess-tracebug key bindings:
* Breakpoints:
b . Set BP (repeat to cycle BP type) . `ess-bp-set'
B . Set conditional BP . `ess-bp-set-conditional'
k . Kill BP . `ess-bp-kil'
K . Kill all BPs . `ess-bp-kill-all'
t . Toggle BP state . `ess-bp-toggle-state'
l . Set logger BP . `ess-bp-set-logger'
C-n . Goto next BP . `ess-bp-next'
C-p . Goto previous BP . `ess-bp-previous'
* General Debugging:
` . Show R Traceback . `ess-show-R-traceback'
e . Toggle error action (repeat to cycle). `ess-dbg-toggle-error-action'
d . Flag for debugging . `ess-dbg-flag-for-debugging'
u . Unflag for debugging . `ess-dbg-unflag-for-debugging'
w . Watch window . `ess-watch'
* Navigation to errors (emacs general functionality):
C-x `, M-g n . `next-error'
M-g p . `previous-error'
* Interactive Debugging:
c . Continue . `ess-dbg-command-c'
n . Next step . `ess-dbg-command-n'
p . Previous step . `previous-error'
q . Quit debugging . `ess-dbg-command-Q'
1..9. Enter recover frame . `ess-dbg-command-digit'
0 . Exit recover (also q,n,c) . `ess-dbg-command-digit'
* Input Ring:
i . Goto input event marker forwards . `ess-dbg-goto-input-event-marker'
I . Goto input event marker backwards . `ess-dbg-goto-input-event-marker'
* Misc:
s . Source current file . `ess-tracebug-source-current-file'
? . Show this help . `ess-tracebug-show-help'
有调试包,结合 mtrace 功能。还有一个新的 Eclipse 调试模块(正如 Dirk 在他的回答中提到的那样),将来可能会在 Rstudio 中添加类似的功能。一旦这些到位,问题将是如何让他们调试相关功能。这基本上意味着获取您感兴趣的所有功能的列表并跟踪它们。
ps:你可以看看这个 - http://www.r-bloggers.com/what-does-this-package-look-like/
我认为 R 指令会让你做你想做的事debug
。browser
Revolution R 中的 IDE 包括方便的可视化调试功能,类似于 MS Visual Studio 中的功能。尽管该软件是专有的并且需要支付许可费用,但您始终可以下载免费的学术版本。
http://www.revolutionanalytics.com/downloads/free-academic.php