# Start here to learn R!

## Ready, set, go!

On R-exercises, you will find *more than 1,000* R exercises. We’ve bundled them into exercise *sets*, where each set covers a specific concept or function. An exercise set typically contains about 10 exercises, progressing from easy to somewhat more difficult. In order to give you a full picture of all the amazing content on this website, we’ve categorized all sets into broader topics below.

## Start at the beginning, or anywhere you want

If you’re completely new to R, we suggest you simply start with the first topic, “Vectors”. Once you’ve managed to work through all exercise sets, from top to bottom, you should have a fair amount of knowledge of, and practical experience with, using R. Of course, those of you who are familiar with R already, can jump straight to any of the topics below.

## Enroll in an online R course

Also, consider enrolling in an online R course to speed up learning, for example R Programming A-Z™: R For Data Science With Real Exercises! if you’re a beginner, or R Programming: Advanced Analytics In R For Data Science if you’re already at an intermediate level. Or even better, check out our R Course Finder directory, which includes more than 140 R courses, and use its filters and search to quickly find the perfect R course that matches your level and interests!

## Subscribe and share

New exercise sets are added on a daily basis. Subscribe to R-exercises to receive weekly updates and bonus sets by email. For Free! Read Why exercise and Celebrating our 100th Exercise Set to better understand our philosophy. If you enjoy our exercises, please share this page with your friends.

Have fun!

## Exercise sets by Topic

- Vectors [tutorial] [vol. 1] [vol. 2]
- Regular sequences [vol. 1] [vol. 2]
- Logical vectors and operators
- Missing Values
- Character vector exercises
- Index vectors

- Matrix exercises [vol. 1] [vol. 2]
- Array exercises
- Bind exercises
- Matrix operations

- List exercises [vol. 1] [vol. 2]
- Data frame exercises [vol. 1] [vol. 2]
- Merging Dataframes Exercises
- Accessing Dataframe Objects Exercises
- Apply functions to lists

**Data Structures**

- Data Structures
- Data Structures [part 1] [part 2]

- Regular expressions part 1
- String manipulation
- [BONUS] Working with tm package and wordclouds *
- [BONUS] Character Functions *
- [BONUS] Character Functions (intermediate) *
- Character Functions (advanced)
- [BONUS] Introduction to Text Mining *

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

- Get-your-stuff-in-order-exercises
- Basic operations
- Summary statistics with aggregate()
- Data Shape Transformation With Reshape()
- Interactive Subsetting exercises
- Reshape 2 exercises
- Efficient data processing with apply
- Optimize data processing with sapply
- Sampling exercise [part 1]
- Select and query
- Let’s get started with dplyr
- Multivariate apply
- Data table exercises: keys and subsetting
- [BONUS] Tidy the data up! *
- Data Hacking with RDSTK [part 1] [part 2] [part 3]
- Data wrangling [part 1] [part 2] [part 3] [part 4] [part 5] [part 6]

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

**Reproducible reporting**

**Loops and conditional execution**

- Conditional execution exercises [vol. 1] [vol. 2]
- Scripting Loops in R [vol. 1] [vol. 2]
- [BONUS] Simplifying For loops *

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

- Functions exercises [vol. 1] [vol. 2]
- Higher order functions
- User Defined Functions
- A Primer in Functional Programming in R [part 1]

- Start plotting data!
- Customize a scatterplot exercises
- Replicating plots: Boxplot
- Advanced base graphics
- Graphics parameters exercises
- 3D plotting exercises
- Igraph Network analysis [part 1] [part 2] [part 3]
- Shiny Apps [part 1] [part 2] [part 3] [part 4] [part 5] [part 6] [part 7] [part 8] [part 9] [part 10]
- Shiny Apps Layout [part 1] [part 2] [part 3] [part 4] [part 5] [part 6] [part 7] [part 8] [part 9] [part 10]
- GoogleVis [part 1] [part 2] [part 3] [part 4] [part 5] [part 6] [part 7] [part 8] [part 9]
- [BONUS] Shiny html tags
- Shapefiles
- Getting started with Plotly: basic plots
- Plotly: advanced plots and features
- Lattice graphs [part 1] [part 2]
- [BONUS] Rebuilding a Figure *
- Multi-panel Graphics
- Spatial Analysis with ggmap

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

**Statistical Testing**

**Experimental Design and Analysis**

- One way ANOVA in R
- Two way ANOVA in R
- Repeated measures ANOVA in R
- One Way MANOVA
- Experimental Design

- Examining data
- [BONUS] Working with and visualizing a confidence interval *
- Model evaluation [part 1] [part 2]
- Basic tree [part 1] [part 2]
- Intermediate tree [part 1] [part 2]
- Recursive partitioning and regression trees
- [BONUS] Evaluating a linear time series model *
- Hierarchical clustering
- Multiple regression [part 1] [part 2]
- [BONUS] ROC curves *
- Call Center Productivity Boosting with ML
- Correlation and Correlogram
- Introduction to Copulas [part 1] [part 2]
- Instrumental Variables [part 1] [part 2] [part 3]

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

- Time Series Exploration
- Linear Trend and ARIMA Models
- Exponential Smoothing
- Multivariate Regression
- ARIMAX model
- Forecasting for Small Business [part 1] [part 3] [part 4]

- Analysis of stock prices [part 1] [[part 2] [part 3]
- Shares analysis using Quantmod package
- using MANOVA to analysis the banking crisis

**Other**

- Best practices while writing R code Exercises
- Bioinformatics Tutorial with Exercises in R [part 1]
- [BONUS] Students’ Achievements Research Project *
- Unit Testing in R using testthat
- Data Science for Operational Excellence [part 1] [part 2] [part 3] [part 4] [part 5]
- Accessing and Manipulating Biological Databases [part 1] [part 2] [part 3]
- Manipulate Biological Data Using Biostrings Package [part 1] [part 2] [part 3] [part 4]

* Subscribe for free to access BONUS exercises and receive our weekly newsletter.

**Stand alone series: Data preparation made simple**

- Descriptive analytics, Part 0: Data Exploration
- Descriptive analytics, Part 1: Data Formatting
- Descriptive analytics, Part 2: Data Imputation
- Descriptive analytics, Part 3: Outlier Treatment
- Descriptive analytics, Part 4: Data Manipulation
- Descriptive analytics, Part 5: Data visualisation (continuous variables)
- Descriptive analytics, Part 5: Data visualisation (categorical variables)
- Descriptive analytics, Part 5: Data visualisation (spatial data)
- Descriptive analytics, Part 6: Interactive dashboard [part 1] [part 2]

**Stand alone series: Data Science for Doctors**

- Data Science for Doctors, Part 1: Data Display
- Data Science for Doctors, Part 2: Descriptive Statistics
- Data Science for Doctors, Part 3: Distributions
- Data Science for Doctors, Part 4: Inferential Statistics [part 1] [part 2] [part 3] [part 4] [part 5]
- Data Science for Doctors, Part 5: Cluster Analysis
- Data Science for Doctors, Part 6: Variable Importance

**Stand alone series: Hacking statistics or: How I Learned to Stop Worrying About Calculus and Love Stats Exercises **