27

S-Plus has a great object explorer and data editor built into its GUI. It allows you to easily see all the objects in the workspace at a glance, and sort them by name, size, or date.

As far as I'm aware, the only equivalent for R is the object browser in JGR (http://jgr.markushelbig.org/).

Otherwise I just use the search() and ls() commands most of the time (along with grep() when I have a lot of objects).

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

Does anyone have any tricks or suggestions for browsing the R workspace? Are there any point-and-click solutions?

Shane
  • 98,550
  • 35
  • 224
  • 217

8 Answers8

19

The ESS mode for Emacs has the following to say in its manual:

13.7 Rdired

Ess-rdired provides a dired-like buffer for viewing, editing and plotting objects in your current R session. If you are used to using the dired (directory editor) facility in Emacs, this mode gives you similar functionality for R objects.

To get started, first make sure you can load ess-rdired. Add the following to your .emacs and then restart emacs.

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

Start an R session with `M-x R' and then store a few variables, such as:

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

Then use `M-x ess-rdired' to create a buffer listing the objects in your current environment and display it in a new window:

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

Type C-h m or ? to get a list of the keybindings for this mode. For example, with your point on the line of a variable, p will plot the object, v will view it, and d will mark the object for deletion (x will actually perform the deletion).

Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725
  • Dirk, do you mind putting the elisp code into a code block? Thanks. – Christopher DuBois Oct 12 '09 at 02:28
  • Hm, what elisp code? All I quoted above is straight from the ESS manual. The code itself is in the ESS package. – Dirk Eddelbuettel Oct 12 '09 at 11:50
  • Oh. Sorry. I thought "(autoload 'ess-redired ..." was elisp. I thought it was meant to be in a code block. Please ignore. – Christopher DuBois Oct 19 '09 at 03:19
  • Got it -- I those two lines, while still part of the section I quoted from the manual, are now formatted as code. – Dirk Eddelbuettel Oct 19 '09 at 03:40
  • This is nice. It would be even nicer to have additional info in ess-rdired. I wonder how easy it would be to add some columns so it's more like the `lsos()` R function you wrote and to allow sorting on multiple columns. Do you know if this has already been done? – Stefan Avey Sep 29 '16 at 21:01
17

The lsos() function shown in this SO questions is also a primitive object browser:

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> 
Community
  • 1
  • 1
Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725
  • 1
    I use the hell out of the lsos() function but I altered it slightly so that the sizes are shown with pretty formatting: http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session/2410412#2410412 – JD Long Mar 09 '10 at 16:00
13

RStudio has a nice object browser.

djhurio
  • 5,437
  • 4
  • 27
  • 48
6

str() is very useful. Specifying give.attr=FALSE hides attributes.

> 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 ...
  • This is just what I wanted to find! What I was really looking for was the function that RStudio uses to give those workspace summaries. Cheers! – guenthmonstr Feb 17 '17 at 17:04
5

The StatET plugin for Eclipse, which provides a nice cross-platform IDE for R, LaTeX, and Sweave, has an integrated object browser for R once you suffer through the pain of getting it all set up.

Ari B. Friedman
  • 71,271
  • 35
  • 175
  • 235
3

The rkward R IDE has an inbuilt object browser/editor which seems quite useful, however I haven't used it much myself

screenshots here

Aaron Statham
  • 2,048
  • 1
  • 15
  • 16
3

What about Rattle?

Rattle stands for R Analytical Tool To Learn Easily. According to the website Rattle ''is a popular GUI for data mining using R. It presents statistical and visual summaries of data, transforms data that can be readily modelled, builds both unsupervised and supervised models from the data, presents the performance of models graphically, and scores new datasets.''

Cagt
  • 80
  • 6
Brandon Bertelsen
  • 43,807
  • 34
  • 160
  • 255
3

I use Tinn-R which has a wonderful R explorer window which shows a list of objects. One can also chosose the view in which details of the objects are displayed. Tinn-r is a great script editor (which is its primary purpose) and has some shortcuts such as dataframe.name$[ctrl-shift-D] which brings up a list of column names in dataframe.name so that the programmer does not need to remember them and their exact spelling.

Farrel
  • 10,244
  • 19
  • 61
  • 99