Tuesday, March 15, 2011

RStudio: My thoughts

Let me get this out of the way: I just love RStudio.

Created by a team lead by JJ Allaire, a name that should ring a bell if you were involved in web development during the Clinton administration, RStudio is an R IDE that is actually designed for R from the ground up. RStudio works on Linux, Mac, and Windows platforms, and can even run over the web.

While borrowing many of the best features from ESS, the Mac R-GUI, and maybe Anup Parikh's Red-R, RStudio provides solutions to several long-standing barriers that have hampered R code development. For instance, to do Sweave->tex->pdf (then view the pdf) in ESS was a frustrating, arthritic (M-n s M-n P)process that flummoxed even the greatest minds of our generation. RStudio has a handy button (Compile PDF) that brings you all the way from .Rnw to Acrobat. Although this command appears to run in its own session, leading to some unexpected behavior compared to running Sweave from the command line, the fact that this IDE is already geared for Sweave bodes well for future development.
This is fucking genius

The movement of commands back and forth from console to editor is another task that other editors made unnecessarily difficult - the old Mac R GUI console would not let you copy-and-paste a subset of the history, ESS was always geared to having users write code in the editor then executing lines but never writing code in the console then committing to the script. RStudio provides means of easily going in either direction. Control over multiple plots (solving both the overwritten X-Window and the annoying type=Cairo PNG problem on OS X) is a welcome relief.

RStudio offers very good autocompletion for such a relatively weird language - in addition to package methods it is aware of data frame columns and user-defined functions, for instance.

RStudio has already garnered a good number of suggestions. Here's personally what I would like to see:
  1. More support for LaTeX markup, including menu driven formatting options so users don't have to memorize stuff like \textbf{}
  2. More built-in aesthetic support for ggplot2, something where users are given a WYSIWYG manipulating an existing plot similar to Jeroen Ooms' ggplot2 web application
  3. A non-sudo Linux binary and a method of specifying different R and TeX installations kicking around a server without re-installing from source.
  4. Better control over the working directory (already reported and a likely future feature)
  5. A means of quickly seeing where source files are actually located without mouseover
  6. Integration with version control.
  7. Code cleanup and indenting