有没有好的 R 对象浏览器?

Are there any good R object browsers?

提问人:Shane 提问时间:9/7/2009 更新时间:10/29/2015 访问量:4409

问:

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

评论


答:

19赞 Dirk is no longer here 9/7/2009 #1

Emacs 的 ESS 模式在其手册中有如下内容:

13.7 已注册

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?pvdx

评论

0赞 Christopher DuBois 10/12/2009
Dirk,你介意把elisp代码放到代码块中吗?谢谢。
0赞 Dirk is no longer here 10/12/2009
嗯,什么elisp代码?我上面引用的所有内容都直接来自 ESS 手册。代码本身位于 ESS 包中。
0赞 Christopher DuBois 10/19/2009
哦。不好意思。我想“(autoload 'ess-redired ...”是Elisp。我以为它应该在代码块中。请忽略。
0赞 Dirk is no longer here 10/19/2009
我明白了——我这两行,虽然仍然是我从手册中引用的部分的一部分,但现在被格式化为代码。
0赞 Stefan Avey 9/30/2016
这很好。如果在ess-rdired中有其他信息会更好。我想知道添加一些列是多么容易,因此它更像您编写的 R 函数并允许对多个列进行排序。你知道这是否已经完成吗?lsos()
6赞 ekorn 9/7/2009 #2

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 ...

评论

0赞 guenthmonstr 2/18/2017
这正是我想找到的!我真正想要的是 RStudio 用来提供这些工作区摘要的函数。干杯!
17赞 Dirk is no longer here 9/7/2009 #3

这个 SO 问题中显示的函数也是一个原始对象浏览器: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> 

评论

1赞 JD Long 3/10/2010
我使用了 lsos() 函数,但我稍微改变了它,以便以漂亮的格式显示大小:stackoverflow.com/questions/1358003/......
3赞 Aaron Statham 9/7/2009 #4

rkward R IDE 有一个内置的对象浏览器/编辑器,这似乎非常有用,但是我自己并没有经常使用它

截图在这里

3赞 Brandon Bertelsen 9/9/2009 #5

拨浪鼓呢?

拨浪鼓代表 R Analytical T ool To Learn Easily。根据该网站的说法,Rattle''是一个流行的GUI,用于使用R进行数据挖掘。它提供数据的统计和可视化摘要,转换易于建模的数据,从数据构建无监督和监督模型,以图形方式呈现模型的性能,并对新数据集进行评分。

3赞 Farrel 9/9/2009 #6

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

5赞 Ari B. Friedman 2/28/2011 #7

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

13赞 djhurio 4/23/2011 #8

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