我对一些R软件包感兴趣,并想了解它是如何工作的,是否有任何工具可以逐步运行该方法并打印中间输出?
答案 0 :(得分:5)
之前的两个答案已经告诉您基础R和附加软件包可以做什么。
就IDE而言,您有两种选择:
StatET plugin for Eclipse有一些功能(我没有使用过)。
Emacs的ESS,其中最新的ESS版本已集成ess-tracebug
,这也是这样做的。这里有一些documentation from when ess-tracebug was still a third-party project而不属于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'
答案 1 :(得分:4)
我认为R说明debug
和browser
会让你做你想做的事。
答案 2 :(得分:4)
有调试包,结合mtrace功能。还有一个用于Eclipse的新调试模块(正如Dirk在他的回答中提到的那样),并且将来可能会向Rstudio添加类似的功能。一旦这些到位,问题将是如何让他们调试相关的功能。这基本上意味着获取您感兴趣的所有功能的列表并跟踪它们。
p.s:你可能会看一下这个 - http://www.r-bloggers.com/what-does-this-package-look-like/
答案 3 :(得分:1)
Revolution R中的IDE包含类似于MS Visual Studio中的便捷可视调试功能。虽然该软件是专有的并且需要支付许可费,但您可以随时下载免费的学术版本。
http://www.revolutionanalytics.com/downloads/free-academic.php