This is a set of resources for people interested in the R programming language.
I have designed it with the intention and hope that it will be useful to people of all skill levels from completely new to programming to subject matter experts who might be interested in expanding their horizons.
Every link below is completely free to use.
Beginner Resources
Before diving into the R programming language, I would highly recommend installing the RStudio development environment. It makes a lot of interactions with the R programming language and peripheral programming related tasks (version controlling, connecting to databases, codeformatting, etc.) much easier.
If you’re a beginner and you want to get started with R as fast as possible, I recommend the following guides:

Swirl : Learn R, in R  Swirl allows newcomers to start interacting with the R programming language through guided tutorials primarily aimed at beginners.

Learn X in Y Minutes : R  Learn X in Y Minutes walks readers through an example script which demonstrates many of the important R language features without getting too bogged down on any specific topic. This is a great quick reference for the syntax of R.

R Language for Programmers  If you have any experience programming but are new to R, or would simply like a quick refresher on the basic language features of R, this is a good reference.

Cookbook for R  This website (and its corresponding book) provide examples and tutorials on many of the most common tasks that programmers are accomplishing with R.
Lastly, I want to encourage people to use the help.start()
feature in R.
Open the R console, type help.start()
, and hit enter. A window will open
which allows you to view the R manuals, check out packages’ documentation,
and search for keywords on Rspecific sites and resources.
Keep in mind that you can always use ?command
or help()
to look up help
without leaving your R or RStudio session.
More Technical Resources
Once you have an understanding of the basics in R, at some point you will likely want to understand how to write better code instead of code that barely meets your needs. The following resources will help you understand the design and motivations behind the R programming language and will, in turn, will help you become a better R programmer:

An Introduction to R  This introduction to R is quite comprehensive and technical. I should point out that while other guides may discuss packages outside the base R language, this introduction focuses entirely on the base R language. Many people will recommend that it is important to understand the base R language, and then to quickly move onto using the nearly selfcontained ecosystems implemented in packages like the tidyverse,

aRrgh, a newcomer’s (angry) guide to R  aRrgh takes the stance that as R is a programming language predominantly developed by statisticians and not programmers, it has some very quirky and at times outright offensive features. Despite this, R comes with tools and ideas that make it uniquely suitable for statistical data analysis and after learning its quirks many people find R to be an indespensible tool they frequently reach for. aRrgh is a guide on those quirks and “gotchas.”

The R Inferno  “If you are using R and you think you’re in hell, this is a map for you.”

RBloggers : Tutorials for Learning R  RBloggers is a popular website among R users where R tutorials and blogposts are aggregated and widely distributed. This is a great post, similar to this one of mine, delineating resources in an ordering suitable for newcomers to the R language.

Efficient R Programming  This book takes a dive into the topic of writing R code which is efficient while keeping the prerequisite knowledge of the language to a minimum.

R Packages  R Packages are an integral part of the R ecosystem, and it is considered good practice to format your work as a package where possible due to the many added perks gained from R’s package development tools.

Advanced R  Advanced R takes a closer look at the technical features of the R programming language to help users improve their R programming skills.

The R Manuals  The R Manuals from CRAN are for those who want to take a deep dive into the fundamentals of the R programming language. In particular, I recommend checking out The R Language Definition and R Internals if you really want to understand how R works.
TopicSpecific Resources
While having an understanding of R’s internals and subtleties to some degree is important, it’s also important to get things done. Depending on your interests or needs, here are some resources that you might find helpful:
General Purpose

RStudio’s Cheat Sheets  RStudio’s Cheat Sheets are great ataglance reference cards for many of the popular packages and features of R. They have ones for many topics, including base R, the RStudio development environment, ggplot2, a data visualization package, and many, many more.

CRAN’s Task Views  CRAN’s Task Views organize packages into topics to make them more easily discoverable.

AwesomeR  Awesome R is a curated list of R packages and tools which helps with discovering new and popular packages to help you accomplish a given task.

R Graphics Cookbook  This resource appears as if it is just one chapter inside the R Cookbook already linked above, but in actuality it is a whole book on its own dedicated to the subject of producing graphics and plots with R. This book makes heavy use of ggplot2, one of the most popular graphics frameworks which employs a theory of the grammar of graphics to make writing code to produce graphics more natural and straightforward.

Rcpp, Rcppintroduction, and the Rcpp vignettes  Rcpp is a package which provides a seamless interface between C++ and R. This is a great utility for speeding up projects in R
Data Science

R for Data Science  R for Data Science, or R4DS, is a very popular book in the R community which teaches users to perform statistical analyses, visualize them, and to communicate their results effectively using the tools the R community has to offer.

Text Mining with R : A Tidy Approach  Another popular topic these days is natural language processing. Text Mining with R introduces ideas on how one can use the tidy data paradigm to ease their textual analyses.

The Elements of Statistical Learning: Data Mining, Inference, and Prediction is the 2nd edition of a popular, mathematically rigorous, treatment of statistical learning with R examples. The PDF of the book is available for free, and a real gift to the community.

Forecasting: Principles and Practice  This text introduces methods for forecasting with timeseries data using techniques including autoregressive methods, dynamic regression, hierarchical modeling, and others.

Spatial Data Science  This reference is a great place to get started with learning how to map and manipulate spatial data in R. The text covers a wide variety of applications that will help you to make outstanding geographical data visualizations.

SpatioTemporal Statistics with R  This book covers statistical techniques in a very handson way for dealing with data that have geographical or geotemporal dimensions to them. The methods covered include both descriptive and dynamic modeling techniques as well as a treatment of model checking, selection, and validation for spatiotemporal models.

Feature Engineering and Selection: A Practical Approach for Predictive Models  This reference is all about improving predictive performance for your models through the construction of more informative features from your original dataset. These materials will help you to be better able to address aspects of your data like interactions, nonlinear relationships, missingness, noisiness and the need for variable selection.

Surrogates: Gaussian Process Modeling, Design and Optimization for the Applied Sciences  This text focuses on the simulation of physical processes with a mathematical and statistical perspective. The practical datadriven examples contained herein provide a great reference for those who need to fit models that reflect complex realworld processes with computational efficiency.

Analyze Survey Data for Free  This text covers how to work with survey microdata in R from a variety of sources. Not only is it great at presenting important survey related methodologies like how to use weighting to produce descriptive statistics, visualizations, and regression models, but it also serves as a great reference of survey data that’s out there freely available for your social science research needs.
Shiny and Web Development

Shiny from RStudio  Shiny is a web framework for R with everimproving documentation and articles. Shiny makes it easy for users to interact with data analyses through webinterfaces that functions through a reactive programming paradigm.

Show Me Shiny  In addition to the references available on RStudio’s website for Shiny, I also highly recommend the examples available at showmeshiny.com. These showcase many nontrivial and novel usecases for Shiny and can often serve as inspirational material.

Engineering ProductionGrade Shiny Apps  If you need to build shiny apps that will be reliable and robust for large numbers of users, this is the book for you.

htmlwidgets for R  Create JavaScript based widgets to render interactive data visualizations within R.