For newcomers, R code can look like old Egyptian hieroglyphs with its weird operators (`%in%`

,`<-`

,`||`

, or `%/%`

). The R language has been said to have a steep learning curve and although there are many introductory courses and books (see R Resources), it’s hard to decide where to start.

Fortunately, I am here to help! The below is a **six-step guide** on how to learning R, using only open access (i.e., **free!**)** materials.**

Although oriented at complete newcomers, it will have you **writing your own practical scripts and programs in no time**: just start at #1 and work your way to coding mastery!

If you already feel comfortable with the basics of R — or don’t like basics — you can start at **#5** and jump into practical learning via the `tidyverse`

.

**Good luck!!!**

*Disclaimer:* This page contains links to Amazon’s book shop.

Any purchases through those links provide us with a small commission that helps to host this blog.

## Step 1: An R Folder (15 min)

Create a directory for your R learning stuff somewhere on your computer. Download this (very) short introduction to R by Paul Torfs and Claudia Bauer and store it in that folder. Now read the introduction and follow the steps. It will help you install all R software on your own computer and familiarize you with the standard data types.

## Step 2: Handy Cheat Sheets (15 min)

Many standard functions exist in R and after a while you will remember them by heart. For now, it’s good to have a dictionary or references close by hand. Download and read the cheat sheets for base R (Mhairi McNeill) and R base functions (Tom Short). Because you’ll be writing most of your R scripts in RStudio, it’s also recommended to have an RStudio cheat sheet as well as an RStudio keyboard shortcuts cheat sheet by hand.

## Step 3: `swirl`

Away in RStudio (8h)

Now you’re ready to really start learning and we’re going to accelerate via `swirl`

. Open up your RStudio and enter the two lines of code below in your console window.

```
install.packages('swirl') #download swirl package
library(swirl) #load in swirl package
```

swirl (webpage) will automatically start and after a couple of prompts you will be able to choose the learning course called *1: R Programming: The basics of programming in R* (see below). This course consists of 15 modules via which you will master the basics of R in the environment itself. Start with module 1 and complete between one to three modules per day, so that you finish the swirl course in a week.

## Step 4: A Pirate’s Guide to R (10h)

OK, you should now be familiar with the basics of R. However, knowledge is crystallized via repetition. I therefore suggest, you walk through the book YaRrr! The Pirate’s Guide to R (Phillips, 2017) starting in chapter 3. It’s a fun book and will provide you with more knowledge on how to program custom functions, loops, and some basic statistical modelling techniques – the thing R was actually designed for.

## Step 5: R for Data Science (16h)

By now, you can say you might say you are *an adapt R programmer with statistical modelling experience*. However, you have been working with base R functions mostly, knowledge of which is a must-have to really understand the language. In practice, R programmers rely strongly on developed packages nevertheless. A very useful group of packages is commonly referred to as the tidyverse. You will be amazed at how much this set of packages simplifies working in R. The next step therefore, is to work through the book R for Data Science (Grolemund & Wickham, 2017) (hardcopy here).

## Step 6: Specialize (∞)

You are now several steps and a couple of weeks further. You possess basic knowledge of the R language, know how to write scripts in RStudio, are capable of programming in base R as well as using the advanced functionality of the tidyverse, and you have even made a start with some basic statistical modelling.

It’s time to set you loose in the wonderful world of the R community. If you had not done this earlier, you should get accounts on Stack Overflow and Cross Validated. You might also want to subscribe to the R Help Mailing List, R Bloggers, and to my website obviously.

On Twitter, have a look at #rstats and, on reddit, subscribe to the rstats, rstudio, and statistics threads. At this time, I can’t but advise you to return to the R Resources Overview and to continue broadening your R programming skills. Pick materials in the area that interests you:

- If you want to become a hardcore
**programmer**, this R programming course may better suit you and you will want to work your way through the books Advanced R (Wickham, 2014) and Efficient R Programming (Gillespie & Lovelace, 2017).

- If you want to become a
**program developer**, building functions and packages, you also want to consider mastering Software Development in R (Peng, Kross, & Anderson, 2017).

- If you like
**visualization**, look into the R Graph Gallery with code examples and read this practical introduction to ggplot2 (Healy, 2017) and the Hitchhiker’s Guide to ggplot2 in R (Burchell & Vargas, 2016).

- If you like
**interactive visualizations**, you will want to look at the above as well as R Shiny, the dashboarding resources, and the HTML Widgets that R offers.

- If you want to become a
**data scientist**, focus on machine learning via this course on statistical learning (Hastie & Tibshirani, 2014). If you prefer a shorter, practical introduction, try this Kaggle Competition Titanic walkthrough on Youtube.

- If you like
**automation and reporting**, start with the basics of markdown and regular expressions. Also consider reading the R Markdown Definitive Guide (Xie, Allaire, & Grolemund, 2018). - If you’re more interested in
**text analysis and text mining**, knowledge of regular expressions is a must-have and a good additional start would be the book on Tidy Text Mining (Silges & Robinson, 2017).

Thank you for this selfless service. I am completely a newbie but I have a deep conviction I can attain heights with programming.

May I know, can I begin with R without passing via lower languages and succeed?

LikeLike

My pleasure! I started with R five years back and have since branched into Python, JS, and C++. I think any of the modern programming languages — including R — will provide you with a great basis to learn the others. Good luck!

LikeLike