是否有任何工具或IDE来调试R包并逐步运行它?

时间:2012-05-03 13:53:30

标签: r

我对一些R软件包感兴趣,并想了解它是如何工作的,是否有任何工具可以逐步运行该方法并打印中间输出?

4 个答案:

答案 0 :(得分:5)

之前的两个答案已经告诉您基础R和附加软件包可以做什么。

就IDE而言,您有两种选择:

  1. StatET plugin for Eclipse有一些功能(我没有使用过)。

  2. Emacs的ESS,其中最新的ESS版本已集成ess-tracebug,这也是这样做的。这里有一些documentation from when ess-tracebug was still a third-party project而不属于ESS。虽然我是ESS用户,但我还没有尝试过。

  3. 以下是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说明debugbrowser会让你做你想做的事。

答案 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