RStudio: The Good and the Bad

I’ve been working with RStudio on and off for about a year now, and it really provides some necessary functionality for working with R. It’s a huge step up from the standard R app, and does a fantastic job of integrating projects that require visualization, text, and R code (i.e. Markdown, Sweave, Shiny). Having separate panes for plots, the console, and source makes the development process much smoother.

With that said, there are definitely some improvements that could be made. Perhaps I’m spoiled as a Sublime Text user for Python/Ruby development, but I’d love to see some of Sublime’s functionality incorporated into RStudio. Here are a few things that frustrate me about RStudio, and please let me know if you have suggestions about fixing these gripes!

  • Key bindings. Why are these not customizable!? For example, I find switching between tabs in the source pane to be a huge pain (no pun intended), but control-option-left/right is not the most comfortable key stroke for someone used to cmd-shift-leftbracket/rightbracket, even if I were to map my Caps Lock to control.
  • Why restrict what can be shown in each pane? For example, I like to look at the data (via View) as I’m writing a function/plot in the source pane, but currently can’t do that since the “View” function takes up the source pane. If my data frame foo is too big to use head(foo) in the console pane, then I’m stuck. Using names(foo) is an OK workaround, but doesn’t provide as much information as actually seeing some of the data would. The workspace tab is great for seeing the names of data frames etc., but it would be even better to be able to View data in that same pane.
  • Splitting panes, as in Sublime. Perhaps this would be too much (> 4 panes is getting crowded), but I often want to be able to reference other files as I’m writing a new script. For example, I often write all my plotting functions in one file and my data-cleaning functions in another file. When I’m writing a function to plot data (usually with ggplot2) from a data frame I just cleaned (usually via ddply, or some other plyr function), I need to reference the names of the columns present in the cleaned data frame. Tab-completion doesn’t help, since either (1) I’m writing a generic function about a data frame that isn’t in my environment or (2) the R environment doesn’t know that a data frame foo has a column named bar, unless I’m using the $ operator (which is rare in the case of ggplot2).

Any other common things that bug people about RStudio? Or suggestions for fixing my complaints above?