Tutorials
Step-by-step series to learn R from scratch.
Data Viz with R
Introduction to ggplot2
Learn the basics of ggplot2, the most popular data viz package in R. Covers the grammar of graphics, aesthetic mappings, and creating your first plots.
Customizing ggplot2 Charts
Learn how to customize ggplot2 charts with custom themes, colors, labels, scales, and legends.
Facets, Scales, and Themes in ggplot2
Learn to create multi-panel plots with facets, customize scales for precise axis and color control, and apply professional themes in ggplot2.
Advanced Geoms in ggplot2
Master advanced ggplot2 geometries including box plots, violin plots, density plots, and multi-layer visualizations for effective data visualization in R.
Interactive Plots with plotly
Learn how to create interactive plots with plotly in R. Convert ggplot2 charts, customize tooltips, and build interactive dashboards.
ggplot2
Publication-Ready Figures in R
Learn how to export ggplot2 figures that meet journal standards—correct dimensions, DPI, embedded fonts, and colorblind-safe palettes.
Animations with gganimate
Learn to create animated charts in R with gganimate—transform your ggplot2 plots into smooth, shareable animations.
machine-learning
Introduction to Supervised Learning in R
Learn regression vs classification, then build your first models with the tidymodels framework in R.
Hyperparameter Tuning in R
Optimize ML models in R with grid search, random search, and Bayesian hyperparameter tuning using caret and tidymodels.
Feature Engineering in R
Transform raw data into powerful model features with R's tidyverse and tidymodels recipes pipeline.
machine-learning-series
Random Forests in R
Train random forests in R with the randomForest package and tidymodels, tune key hyperparameters, and interpret feature importance scores.
Cross-Validation in R
Learn how to evaluate machine learning models reliably using k-fold cross-validation, caret, and tidymodels in R.
purrr
r
R Package Structure
The files, directories, and conventions that define an R package, from DESCRIPTION to vignettes.
DESCRIPTION and NAMESPACE Files
Learn what DESCRIPTION and NAMESPACE files do in an R package — the manifest and namespace contract every package needs.
Documenting with roxygen2
Write roxygen comments in your R source files to auto-generate Rd documentation for your package functions with devtools::document().
Building pkgdown Sites
Create a professional documentation website for your R package with pkgdown. Covers setup, configuration, navigation, articles, and deployment.
R for Reporting
Getting Started with R Markdown
Learn how to create reproducible reports and documents combining R code, output, and narrative text using R Markdown.
Getting Started with Quarto
Learn to create dynamic documents, reports, and presentations with Quarto—the next-generation R Markdown.
Parameterised Reports with Quarto
Learn to create flexible, reusable Quarto reports with parameters. Filter data, customize outputs, and render multiple versions from a single source file.
Building Dashboards with Quarto
Create interactive data dashboards with Quarto. Learn layout, value boxes, and deploying your dashboard.
R for Statistics
Hypothesis Testing in R
Learn how to perform hypothesis tests in R including t-tests, chi-square tests, and ANOVA. Covers p-values, significance levels, and interpreting results.
Linear Regression in R
Learn simple and multiple linear regression in R with lm(), including diagnostics, interpretation, predictions and visualization.
ANOVA in R
Learn how to perform Analysis of Variance (ANOVA) in R, including one-way ANOVA, two-way ANOVA, and post-hoc tests with practical examples.
R For Statistics
Descriptive Statistics in R
Learn how to calculate descriptive statistics in R — mean, median, mode, variance, standard deviation, quartiles, and more.
Logistic Regression in R
Learn how to build, interpret, and evaluate logistic regression models in R using the glm() function. Covers odds ratios, predictions, and model diagnostics.
R Fundamentals
Installing R and RStudio
A step-by-step guide to installing R and RStudio on Windows, macOS, and Linux, with instructions for verifying your installation and writing your first R code.
R Basics: Vectors and Types
Learn about R's fundamental data structure—vectors—and understand the different atomic types in R: numeric, integer, character, and logical.
Data Frames and Tibbles
Learn to create, manipulate, and transform data frames and tibbles in R—the essential structures for working with tabular data in R.
Functions and Control Flow in R
Learn how to write custom functions, control program flow with if-else statements, and use loops for repetitive tasks in R.
Importing and Exporting Data in R
Learn how to read and write data files in R, from basic CSV handling to Excel files and beyond.
Lists and Environments in R
Learn how to create and manipulate lists, understand R environments, and master the scoping rules that power your R programs.
Strings and Factors in R
Learn how to work with character strings and categorical data (factors) in R — covering string manipulation, converting to factors, and best practices.
Error Handling in R
Learn how to handle errors and exceptions in R using tryCatch, base R warning functions, and the purrr safely family for functional programming.
R Machine Learning
Introduction to Machine Learning in R
A comprehensive beginner's guide to machine learning concepts, popular R packages like caret and tidymodels, and how to build your first ML model.
Classification with caret
Learn how to build classification models using the caret package in R. Covers data preprocessing, model training, hyperparameter tuning, and evaluation metrics.
Regression with tidymodels
Learn how to build, evaluate, and interpret regression models using tidymodels in R. Covers linear regression, model specification, and performance metrics.
Random Forests in R
Learn how to build, tune, and interpret random forest models in R using the tidymodels framework for robust machine learning predictions.
Gradient Boosting with xgboost
Learn how to build powerful gradient boosting models in R. Covers basics, hyperparameters, tuning, and best practices for classification and regression.
Model Evaluation and Cross-Validation
Learn to evaluate ML models in R with train/test splits, k-fold cross-validation, and metrics like accuracy, precision, recall, F1, and ROC AUC.
r-bayesian-stats
Introduction to Bayesian Thinking
Learn the fundamentals of Bayesian statistics and how it differs from frequentist approaches. Understand priors, likelihoods, and posterior distributions.
Getting Started with brms
Learn how to fit Bayesian regression models in R using the brms package. Covers basic syntax, model fitting, and interpreting results.
Prior Selection in Bayesian Models
Learn how to choose appropriate prior distributions for Bayesian models in R. Covers prior types with practical brms examples.
Posterior Predictive Checks
Learn how to perform posterior predictive checks to validate your Bayesian models in R using brms and bayesplot.
r-data-visualization
ggplot2 Basics
Learn how to create data visualizations in R using ggplot2's layered Grammar of Graphics approach.
Customizing ggplot2 Themes
Learn to customize ggplot2 themes with theme(), element_text(), element_line(), and element_rect(). Build reusable themes for data visualizations.
Faceting in ggplot2
Split your plots into panels to compare data subsets side by side. Learn facet_wrap() and facet_grid() with practical examples.
Maps with ggplot2
Learn to create maps in R with ggplot2, covering choropleth maps, bubble maps, sf objects, and geographic projections for spatial visualizations.
r-for-reporting
r-machine-learning
r-package-development
Testing with testthat
Learn to write unit tests in R with the testthat package, from basic assertions to fixtures and skipping tests.
Writing Vignettes in R
Learn how to write package vignettes in R — the narrative articles that walk users through real-world workflows and explain how your package fits together.
r-spatial-analysis
Introduction to Spatial Data in R
Learn the fundamentals of working with spatial data in R. Cover vector and raster data, coordinate systems, and your first spatial visualizations.
Working with sf and terra
Master sf and terra packages for advanced vector and raster spatial data in R. Learn to transform, project, and analyze.
Geocoding and Mapping in R
Learn to convert addresses to coordinates and create publication-quality maps using R. Covers geocoding APIs, static maps with ggplot2, and interactive mapping.
Spatial Joins in R
Master spatial joins in R using sf and dplyr. Learn to combine geospatial datasets based on geographic relationships, not common keys.
Raster Analysis in R
Perform advanced raster analysis in R using the terra package. Learn terrain analysis, zonal statistics, and multi-band operations.
r-text-mining
Introduction to Text Mining in R
Learn the fundamentals of text mining in R with tidytext. Transform raw text into tidy structures and extract meaningful insights.
Tidytext Basics
Master the core tidytext functions for text analysis in R. Learn tokenization, n-grams, and working with multiple documents.
Sentiment Analysis in R
Learn how to perform sentiment analysis on text data using R. Cover lexicon-based methods, sentiment scoring, and visualizing emotional trends.
Topic Modeling with LDA in R
Learn how to discover hidden topics in document collections using Latent Dirichlet Allocation (LDA) in R with the tidytext package.
Text Classification in R
Learn how to build supervised text classification models in R. Cover text preprocessing, feature extraction, and training classifiers.
r-web-development
Shiny for Python Developers
A practical guide for Python developers learning Shiny for R. Maps familiar Streamlit and Gradio concepts to Shiny equivalents with clear code examples.
Building a REST Client in R
A practical guide to building robust REST API clients in R using httr2. Learn error handling, retries, pagination, and auth patterns.
R and Databases: Advanced Patterns
Master advanced database patterns in R including connection pooling, parameterized queries, transaction management, and multi-database workflows.
Shiny Apps
Getting Started with Shiny
Learn to build interactive web apps with R and Shiny. Covers UI, server, reactivity, and running your first app.
Reactivity in Shiny
Master reactive programming in Shiny. Learn about reactive values, expressions, observers, and how Shiny automatically updates outputs when inputs change.
Building UI Components in Shiny
Learn how to build interactive user interface components in Shiny apps, including inputs, sliders, dropdowns, action buttons, and layout functions.
Deploying a Shiny App
Learn how to deploy Shiny apps to shinyapps.io, RStudio Connect, and Docker. Step-by-step guide covers configuration and best practices.
tidyr
tidyverse
Importing Data with readr
Learn to import CSV, TSV, and delimited files into R using readr. Covers column types, locale settings, and common pitfalls.
Text Manipulation with stringr
Manipulate text in R with stringr. Covers concatenation, pattern matching, regex, case conversion, trimming, padding, and interpolation inside dplyr pipelines.
Tidyverse Workflow
Introduction to the Tidyverse
Learn the fundamentals of the Tidyverse—a collection of R packages for data science. Discover how dplyr, ggplot2, tidyr, and more transform data analysis.
Data Manipulation with dplyr
Transform, filter, and summarize data with dplyr — the core tidyverse package. Covers filter, select, mutate, arrange, and group_by.
Reshaping Data with tidyr
A complete guide to pivoting data between wide and long formats using tidyr's pivot_longer() and pivot_wider() functions.
Fast File Import with readr
Learn how to efficiently import flat files into R using the readr package. Covers CSV, TSV, delimited files, column types, and performance tips.
String Manipulation with stringr
Master string manipulation in R with the stringr package. Learn pattern matching, string extraction, replacement, and whitespace handling.
Functional Iteration with purrr
Learn map(), map2(), pmap() for iterating over data and handle errors with safely(), possibly(), quietly().
Working with Dates using lubridate
A comprehensive guide to parsing, manipulating, and performing calculations with dates and times in R using the lubridate package.
Handling Factors with forcats
Learn how to manage categorical data in R using the forcats package. Master factor creation, reordering, lumping, and recoding.