Atom vs RStudio

Mon 08 June 2020

Let's talk about workflow.

Most R users that I know use RStudio.

Most programmers that I know use a text editor like Emacs, or use what is embedded into an IDE like PyCharm or IntelliJ.

There are some things to like about RStudio (especially once you get the layout right), but it's a still a primarily point-and-click experience. I want to be able to do text editor things that should never need a mouse: open and close files, comment out lines, edit many lines of text at the same time. At the same time I want to be able to do IDE things without excessive (or any) pointing and clicking around: run bits of code, run entire scripts, view the contents of dataframes, find where functions are defined. All of this is possible in Atom using Hydrogen.

Let's run through a few examples of what this looks like in day-to-day use, and then I'll share the nitty gritty on getting Atom+Hydrogen set up (it's not quite as streamlined as just downloading RStudio).

Create a file and start the editor

First, we need a file. Start in the project directory.


Start Atom with atom . or jump through the file creation with atom scratch.R. If you just opened Atom with atom . (which I usually do), just ^x ^f, type the path (let's just create scratch.R) and start typing. So far, we've spent a few seconds at the keyboard to create the file and type out x = 10.


We can start RStudio the same way, RStudio ., and create the new file with Command+N. We can give it the filename by saving, Command+s. If the file already existed, we'd need to click the Files pane, navigate to it, and click the filename. Click on the file, and type in x = 10.

Run code

Now let's go ahead and start running code.


To start the kernel first: Command+P, start typing "start" and hit enter to Hydrogen: Start Local Kernel. You'll have to hit enter again to select "R" and then boom, you 10 printed after. You could also just Shift+Enter on the line x=10 and Atom will go ahead and start the kernel for you (you'll still need to hit enter to confirm "R").


This is about the same, Shift+Enter and your code runs in "Console" pane.

Write more code

This where RStudio and Atom really get different. In Atom, with atomic-emacs, I can do all of the following things from the keyboard:

  • Grab a block of code to indent, edit in multi-line mode, or comment it out.
    • In Rstudio, you could select with the mouse and use the menu or a keyboard shortcut to comment lines, or auto-indent lines.
  • Move the cursor forward by whole words, and/or select parts of code this way.
    • Again, this is a point and click in R.

I guess this is really the biggest differentiator for me in Atom: the ability to manipulate raw text very quickly and easily, without any clicking around or selecting things. Making tasks that take 15 seconds only take 3 seconds (like executing a specific part of a line, or block of code) adds up!

Setting up Hydrogen

You still need base R, and then to install the IRKernel.

In one line:

Rscript -e 'install.packages("IRkernel", repos=""); IRkernel::installspec(name = "ir351", displayname = "R 3.5.1");'

Install the following Atom packages:


And in the Atom settings for Hydrogen, under "language mapping", set {"ir351": "R"}. You may not need to set this, I didn't need to, but just in case.

Enjoy whichever editor you're using :)