This lesson is being piloted (Beta version)

Before we Start

Overview

Teaching: 25 min
Exercises: 15 min
Questions
  • How do you get a GitHub account?

  • How do you use Git with RStudio?

Objectives
  • Register for a GitHub account.

  • Install latest version of RStudio.

  • Use RStudio for version control.

R and RStudio

You should already be familiar with R, either through participating in a Software or Data Carpentry workshop or having learned R some other way. As you are probably aware, there are a variety of online resources where you can get help and valuable advice. These include stackoverflow and the RStudio Community which will allow you to seek help from peers. Questions which are backed up with short, reproducible code snippets are more likely to attract knowledgeable responses.

In this course we will use RStudio to interact with R. RStudio is the most popular IDE (Integrated Development Interface), to work with R. An IDE is a software that provide tools to make it easier to program. If you haven’t used RStudio before, now is a good time to familiarise yourself with the interface.

RStudio extends what R can do, and make it easier to write R code and interact with R.
RStudio extends what R can do, and make it easier to write R code and interact with R. [Credit photo left photo](https://commons.wikimedia.org/w/index.php?curid=2447462), [Credit photo right photo](https://commons.wikimedia.org/w/index.php?curid=44599363)

A tour of RStudio

Knowing your way around RStudio

Let’s start by learning about RStudio, which is an Integrated Development Environment (IDE) for working with R.

The RStudio IDE open-source product is free under the Affero General Public License (AGPL) v3. The RStudio IDE is also available with a commercial license and priority email support from RStudio, Inc.

We will use RStudio IDE to write code, navigate the files on our computer, inspect the variables we are going to create, and visualize the plots we will generate. RStudio can also be used for other things (e.g., version control, developing packages, writing Shiny apps) that we will not cover during the workshop.

One of the advantages of using RStudio is that all the information you need to write code is available in a single window. Additionally, with many shortcuts, autocompletion, and highlighting for the major file types you use while developing in R, RStudio will make typing easier and less error-prone.

Getting set up

It is good practice to keep a set of related data, analyses, and text self-contained in a single folder, called the working directory. All of the scripts within this folder can then use relative paths to files that indicate where inside the project a file is located (as opposed to absolute paths, which point to where a file is on a specific computer). Working this way makes it a lot easier to move your project around on your computer and share it with others without worrying about whether or not the underlying scripts will still work.

RStudio provides a helpful set of tools to do this through its “Projects” interface, which not only creates a working directory for you but also remembers its location (allowing you to quickly navigate to it) and optionally preserves custom settings and open files to make it easier to resume work after a break. Below, we will go through the steps for creating an “R Project” for this tutorial. First let’s take a quick tour of RStudio.

RStudio_startup

RStudio is divided into 4 “Panes”: the Source for your scripts and documents (top-left, in the default layout), the R Console (bottom-left), your Environment/History (top-right), and your Files/Plots/Packages/Help/Viewer (bottom-right). The placement of these panes and their content can be customized (see menu, Tools -> Global Options -> Pane Layout).

Create a new project

Organizing your working directory

Using a consistent folder structure across your projects will help keep things organized, and will also make it easy to find/file things in the future. This can be especially helpful when you have multiple projects. In general, you may create directories (folders) for scripts, data, and documents.

You may want additional directories or subdirectories depending on your project needs, but these should form the backbone of your working directory.

Example of a working directory structure

The working directory

The working directory is an important concept to understand. It is the place from where R will be looking for and saving the files. When you write code for your project, it should refer to files in relation to the root of your working directory and only need files within this structure.

Using RStudio projects makes this easy and ensures that your working directory is set properly. If you need to check it, you can use getwd(). If for some reason your working directory is not what it should be, you can change it in the RStudio interface by navigating in the file browser where your working directory should be, and clicking on the blue gear icon “More”, and select “Set As Working Directory”. Alternatively you can use setwd("/path/to/working/directory") to reset your working directory. However, your scripts should not include this line because it will fail on someone else’s computer.

Cloning an existing project from GitHub

Instead of starting a new project from scratch you may wish to use an existing project that is available online, e.g. through GitHub. Such a project may provide a predefined directory structure containing relevant data as well as R scripts. This allows you to build on existing work (either by you or others).

Forking the project repository

During this course we will work with a project from GitHub. To get this setup on your laptop, navigate to https://github.com/humburg/r-ggplot-project and click on the Fork button.

Forking the workshop's project on GitHub.

This will create a copy of the project in your own GitHub account, allowing you to modify it as you see fit and pushing those changes back to GitHub.

Cloning the project repository

Before you can do any work on this project you’ll need a working copy on your computer. First, navigate to the GitHub site for your freshly forked repository. GitHub should have loaded that for you after completing the forking process. Click on the green Clone or download button and coppy the displayed url.

Obtaining the right url to clone the project from GitHub.

Now, switch back to RStudio and create a new project. Choose Version Control and Git. This should present you with a dialogue where you can enter the details you just copied from GitHub.

Using RStudio to clone a project from GitHub.

Interacting with R

The basis of programming is that we write down instructions for the computer to follow, and then we tell the computer to follow those instructions. We write, or code, instructions in R because it is a common language that both the computer and we can understand. We call the instructions commands and we tell the computer to follow the instructions by executing (also called running) those commands.

There are two main ways of interacting with R: by using the console or by using script files (plain text files that contain your code). The console pane (in RStudio, the bottom left panel) is the place where commands written in the R language can be typed and executed immediately by the computer. It is also where the results will be shown for commands that have been executed. You can type commands directly into the console and press Enter to execute those commands, but they will be forgotten when you close the session.

Because we want our code and workflow to be reproducible, it is better to type the commands we want in the script editor, and save the script. This way, there is a complete record of what we did, and anyone (including our future selves!) can easily replicate the results on their computer.

RStudio allows you to execute commands directly from the script editor by using the Ctrl + Enter shortcut (on Macs, Cmd + Return will work, too). The command on the current line in the script (indicated by the cursor) or all of the commands in the currently selected text will be sent to the console and executed when you press Ctrl + Enter. You can find other keyboard shortcuts in this RStudio cheatsheet about the RStudio IDE.

At some point in your analysis you may want to check the content of a variable or the structure of an object, without necessarily keeping a record of it in your script. You can type these commands and execute them directly in the console. RStudio provides the Ctrl + 1 and Ctrl + 2 shortcuts allow you to jump between the script and the console panes.

If R is ready to accept commands, the R console shows a > prompt. If it receives a command (by typing, copy-pasting or sent from the script editor using Ctrl + Enter), R will try to execute it, and when ready, will show the results and come back with a new > prompt to wait for new commands.

If R is still waiting for you to enter more data because it isn’t complete yet, the console will show a + prompt. It means that you haven’t finished entering a complete command. This is because you have not ‘closed’ a parenthesis or quotation, i.e. you don’t have the same number of left-parentheses as right-parentheses, or the same number of opening and closing quotation marks. When this happens, and you thought you finished typing your command, click inside the console window and press Esc; this will cancel the incomplete command and return you to the > prompt.

Installing additional packages using the packages tab

In addition to the core R installation there are in excess of 10,000 additional packages which can be used to extend the functionality of R. Many of these have been written by R users and have been made available in central repositories, like the one hosted at CRAN for anyone to download and install into their own R environment. In the course of this lesson we will be making use of several of these packages such as ‘ggplot2’ and ‘dplyr’.

Additional packages can be installed from the ‘packages’ tab. On the packages tab click the ‘Install’ icon and start typing the name of the package you want in the text box. As you type packages matching your starting characters will be displayed in a drop down list from where it can be selected.

Install Packages Window

At the bottom of the Install Packages window is a check box for ‘Install’ dependencies. This is ticked by default, which is usually what you want. Packages can (and do) make use of functionality built into other packages, so for the functionality contained in the package you are installing to work properly, there may be other packages which have to be installed with them. The ‘Install dependencies’ option makes sure that this happens.

Exercise

Use the install option from the packages tab to install the ‘tidyverse’ package.

Solution

From the packages tab, click ‘Install’ from the toolbar and type ‘tidyverse’ into the textbox then click ‘install’ The ‘tidyverse’ package is really a package of packages, including ‘ggplot2’ and ‘dplyr’, both of which require other packages to run correctly. All of these packages will be installed automatically. Depending on what packages have previously been installed in your R environment, the install of ‘tidyverse’ could be very quick or could take several minutes. As the install proceeds messages relating to the progress will be written to the console. You will be able to see all of the packages which are actually being installed.

Because the install process accesses the CRAN repository, you will need an Internet connection to install packages in this way.

It is also possible to install packages from other repositories as well as Github or the local file system, but we won’t be looking at these options in this lesson.

Installing additional packages using R code

If you were watching the console window when you starting the install of ‘tidyverse’ you may have noticed that before the start of the installation messages, the line

install.packages("tidyverse")

was written to the console.

You could also have installed the tidyverse packages by running this command directly at the R terminal.

Key Points

  • Use RStudio to write and run R programs.

  • Use RStudio to interact with GitHub.