【问题标题】:Are there any good R object browsers?有没有好的 R 对象浏览器?
【发布时间】:2010-11-26 02:02:00
【问题描述】:

S-Plus 在其 GUI 中内置了出色的对象浏览器和数据编辑器。它使您可以轻松一目了然地查看工作区中的所有对象,并按名称、大小或日期对它们进行排序。

据我所知,R 的唯一等价物是 JGR 中的对象浏览器 (http://jgr.markushelbig.org/)。

否则我大部分时间只使用 search() 和 ls() 命令(当我有很多对象时使用 grep())。

# trivial example of routine:
search()
utils.list <- ls(pos="package:utils")
utils.list[grep("edit",utils.list)]

是否有人对浏览 R 工作区有任何技巧或建议?是否有任何点击式解决方案?

【问题讨论】:

    标签: r


    【解决方案1】:

    Rattle 呢?

    Rattle 代表 R Analytical Tool To Learn E轻松。根据网站 Rattle ''是使用 R 进行数据挖掘的流行 GUI。它提供数据的统计和可视化摘要,转换易于建模的数据,从数据构建无监督和监督模型,展示性能以图形方式计算模型,并对新数据集进行评分。''

    【讨论】:

      【解决方案2】:

      RStudio 有一个不错的对象浏览器。

      【讨论】:

        【解决方案3】:

        Eclipse 的StatET plugin 为 R、LaTeX 和 Sweave 提供了一个不错的跨平台 IDE,一旦您经历了所有设置的痛苦,它就有一个用于 R 的集成对象浏览器。

        【讨论】:

          【解决方案4】:

          Emacs 的ESS 模式在其手册中有以下说明:

          13.7 Rdired

          ess-rdired 提供了一个类似于 dired 的缓冲区,用于查看、编辑和 在当前 R 会话中绘制对象。如果你习惯使用 Emacs 中的 dired(目录编辑器)工具,此模式为您提供 R 对象的类似功能。

          要开始使用,首先确保您可以加载 ess-rdired。添加 跟随您的 .emacs,然后重新启动 emacs。

           (autoload 'ess-rdired "ess-rdired"  
             "View *R* objects in a dired-like buffer." t)  
          

          使用 `M-x R' 启动一个 R 会话,然后存储一些变量,例如 如:

           s <- sin(seq(from=0, to=8*pi, length=100))
           x <- c(1, 4, 9)
           y <- rnorm(20)
           z <- TRUE
          

          然后使用 `M-x ess-rdired' 创建一个缓冲区,列出其中的对象 您当前的环境并将其显示在新窗口中:

                       mode length
             s      numeric    100
             x      numeric      3
             y      numeric     20
             z      logical      1
          

          键入 C-h m? 以获取此模式的键绑定列表。 例如,您的点位于变量的行上,p 将绘制 对象,v 将查看它,d 将标记该对象以删除 (x 将实际执行删除)。

          【讨论】:

          • Dirk,您介意将 elisp 代码放入代码块中吗?谢谢。
          • 嗯,什么省略号?我上面引用的所有内容都直接来自 ESS 手册。代码本身在 ESS 包中。
          • 哦。对不起。我认为“(autoload 'ess-redired ...”是省略号。我认为它应该在代码块中。请忽略。
          • 知道了——这两行虽然仍然是我从手册中引用的部分的一部分,但现在已格式化为代码。
          • 这很好。在 ess-rdired 中有更多信息会更好。我想知道添加一些列有多容易,所以它更像您编写的lsos() R 函数并允许对多列进行排序。你知道这是否已经完成了吗?
          【解决方案5】:

          我使用Tinn-R,它有一个很棒的 R 资源管理器窗口,它显示了一个对象列表。还可以选择显示对象详细信息的视图。 Tinn-r 是一个很棒的脚本编辑器(这是它的主要用途),并且有一些快捷方式,例如 dataframe.name$[ctrl-shift-D] 它会在 dataframe.name 中显示列名列表,这样程序员就不会需要记住它们和它们的确切拼写。

          【讨论】:

            【解决方案6】:

            rkward R IDE 有一个内置的对象浏览器/编辑器,看起来非常有用,但是我自己并没有使用太多

            截图here

            【讨论】:

              【解决方案7】:

              this SO questions 中显示的lsos() 函数也是一个原始对象浏览器:

              R> lsos()
                             Type  Size Rows Columns
              ls.objects function 11792   NA      NA
              lsos       function  1112   NA      NA
              s           numeric   824  100      NA
              y           numeric   184   20      NA
              x           numeric    56    3      NA
              z           logical    32    1      NA
              R> 
              

              【讨论】:

              【解决方案8】:

              str() 非常有用。指定give.attr=FALSE 隐藏属性。

              > str(diamonds)
              'data.frame':   53940 obs. of  10 variables:
               $ carat  : num  0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
               $ cut    : Factor w/ 5 levels "Fair","Good",..: 5 4 2 4 2 3 3 3 1 3 ...
               $ color  : Factor w/ 7 levels "D","E","F","G",..: 2 2 2 6 7 7 6 5 2 5 ...
               $ clarity: Factor w/ 8 levels "I1","SI2","SI1",..: 2 3 5 4 2 6 7 3 4 5 ...
               $ depth  : num  61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
               $ table  : num  55 61 65 58 58 57 57 55 61 61 ...
               $ price  : int  326 326 327 334 335 336 336 337 337 338 ...
               $ x      : num  3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
               $ y      : num  3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
               $ z      : num  2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
              

              【讨论】:

              • 这正是我想要找到的!我真正想要的是 RStudio 用来提供这些工作区摘要的函数。干杯!
              猜你喜欢
              • 1970-01-01
              • 2023-03-13
              • 2021-04-05
              • 1970-01-01
              • 2010-12-09
              • 2017-03-07
              • 1970-01-01
              • 2015-04-10
              • 1970-01-01
              相关资源
              最近更新 更多