Guides
In-depth tutorials and guides for R developers.
Interactive ggplot with ggiraph
Add tooltips, hover effects, and click selection to ggplot2 plots with ggiraph, an htmlwidget that makes static R graphics interactive.
Rcpp and C++ Integration in R
Learn how to integrate C++ code into R using Rcpp for performance gains. This beginner guide covers installation, your first C++ function, and benchmarking.
Advanced Table Formatting with gt
Learn how to create presentation-ready display tables in R using the gt package. Covers formatting, styling, row groups, and custom themes.
Calling Python from R with reticulate
Learn how to use Python libraries directly inside R using the reticulate package, with clear examples and common pitfalls explained.
Benchmarking R Code
Learn to measure and compare R code performance with the microbenchmark package. Includes practical examples comparing base R, dplyr, and data.table.
Modular R Code with box
A guide to writing modular, maintainable R code using the box package's modern module system.
Building CLI Tools in R
Learn how to create command-line tools in R using argparse, optparse, shebangs, and executable scripts.
Test Coverage with covr
Measure test coverage in your R packages with covr. Learn to track coverage, generate reports, and integrate with CI.
Async R with future and promises
Learn how to perform asynchronous programming in R using the future and promises packages. Run computations in parallel without blocking your main R session.
Code Quality with lintr and styler
Learn how to use lintr for static code analysis and styler for automatic code formatting in R. Improve your package workflow with these essential tools.
Package Documentation Sites with pkgdown
Learn how to create professional documentation websites for your R packages using pkgdown. A step-by-step guide covering setup, configuration, and deployment.
Testing R Code with testthat
Learn how to write unit tests for your R packages using the testthat framework. Covers expectations, test structure, and running tests.
Programming with Tidy Evaluation in R
Write reusable R functions with tidy evaluation using quasiquotation operators like !!, !!!, and the {{ }} syntax for dynamic column handling.
Working with APIs using httr2
Master API integration in R with httr2. Learn to make HTTP requests, handle authentication, parse responses, and build robust data pipelines.
Database Queries with dbplyr
Learn how to use dbplyr to translate dplyr verbs into SQL queries, letting you work with databases using familiar R syntax.
Using dtplyr: dplyr Syntax on data.table
Master dtplyr for fast data manipulation — use familiar dplyr syntax with data.table's blazing speed under the hood.
Keras in R
Learn to build deep learning models in R using Keras. Covers installation, Sequential and Functional APIs, training, evaluation, and deployment.
Sharing Data Artifacts with pins
A guide to sharing and managing data artifacts across R projects using the pins package.
Deep Learning with torch for R
Learn to use the torch package for deep learning in R. Covers tensors, neural networks, training loops, and GPU acceleration.
Model Deployment with Vetiver in R
Deploy ML models as Plumber APIs with vetiver. Covers model versioning with pins, model cards, and serving predictions via HTTP.
Build an Interactive Map with leaflet
Create a production-ready interactive map in R using leaflet. Learn to add markers, popups, layers, and custom styling.
Publication-Ready Charts with ggplot2
Learn to create professional, publication-quality charts with ggplot2. Master custom themes, fonts, color palettes, and export settings.
Sending Emails with blastula
Learn how to send emails from R using blastula. This guide covers SMTP setup, composing HTML and plain text emails, and sending messages programmatically.
Build an Animated Chart with gganimate
Learn to create stunning data animations in R using gganimate. This hands-on project walks you through building engaging animated visualizations.
Build an R Package from Scratch
Learn how to create a complete R package from scratch. Covers package structure, functions, documentation, dependencies, and publishing to CRAN.
Build a CRUD API with plumber and SQLite
Learn how to build a complete CRUD (Create, Read, Update, Delete) REST API in R using plumber and SQLite. Connect your R code to a persistent database.
Build a Data Portfolio with Quarto
Create a stunning data portfolio website to showcase your R projects, analyses, and visualizations. Learn how to structure, style, and publish your work.
Build a Data Explorer Shiny App
Create an interactive data explorer in R with Shiny. Let users upload CSV files, filter dynamically, and visualize results with tables and plots.
Build a Sales Dashboard with Shiny
Learn to create an interactive sales dashboard in R using Shiny. Track KPIs, visualize trends, and let users filter data by date, category, and region.
Build a Simple R Package
Learn the fastest way to create and share your own R package. This guide walks you through building a minimal package you can install and use in 30 minutes.
Build a Web Scraper with rvest
Build a production-ready web scraper in R that handles multiple pages, respects website policies, and saves data to disk.
Reproducible Analysis Reports with Quarto
Learn how to create polished, reproducible analysis reports using Quarto with R. From setup to publication, this guide covers everything you need.
Bayesian Modelling with rstanarm
Learn Bayesian statistics with rstanarm - from priors to posterior interpretation.
Functional Programming in R
Learn functional programming paradigms in R: first-class functions, higher-order functions, closures, and function factories.
ggplot2 Extensions: patchwork, ggrepel, gganimate
Learn how to extend ggplot2 with powerful extensions for combining plots, labeling points, and creating animations.
Running R in GitHub Actions
Learn how to automate R workflows with GitHub Actions—CI/CD for R packages, testing, pkgdown sites, and more.
Generalised Linear Models in R
Learn how to fit and interpret Generalised Linear Models (GLMs) in R for binary, count, and categorical outcomes.
Publication-Ready Tables with gt
Learn how to create beautiful, publication-quality tables in R using the gt package. Covers styling, formatting, and exporting.
Non-Standard Evaluation (NSE) in R
Learn how R's non-standard evaluation works, how to capture unevaluated expressions, and when to use NSE in your own functions.
Object-Oriented R with R6
Learn to build robust object-oriented systems in R using the R6 class system for encapsulated, mutable objects.
Parallel purrr with furrr
Learn to parallelize your purrr workflows using the furrr package in R for significant performance gains.
Interactive Visualizations with plotly
Learn how to create interactive charts, 3D plots, and dashboards in R using the plotly package.
Reading Excel Files with readxl and writexl
Learn how to read and write Excel files in R using the readxl and writexl packages.
Interactive Tables with reactable
Create interactive tables with reactable in R. Learn sorting, filtering, pagination, and custom cell rendering for responsive data tables.
Metaprogramming with rlang
Master tidy evaluation, quosures, and DSL building with rlang for advanced R programming
Survival Analysis in R
Learn how to perform survival analysis in R using the survival package. Covers Kaplan-Meier curves, Cox regression, and survminer visualizations.
Time Series Forecasting with fable
Learn how to forecast time series data in R using the fable package - from data preparation to model evaluation.
High-Performance Vectors with vctrs
Master the vctrs package for type-safe, high-performance vector operations in R. Learn vec_size, vec_cast, and the new vctr class.
Advanced Web Scraping with rvest and polite
Learn how to scrape websites responsibly using R packages rvest and polite. Covers HTML parsing, form handling, pagination, and error management.
Working with JSON in R
Learn how to read, write, and manipulate JSON data in R using jsonlite and other packages.
Writing R Packages with devtools
Learn how to create, test, and distribute R packages using the devtools workflow.
Base R Graphics and Plotting
Learn how to create plots and charts using R's versatile base graphics system. Covers plot(), hist(), barplot(), boxplot(), and customization options.
Creating Documents with Quarto
Learn how to create professional documents, presentations, and websites using Quarto, the next-generation R Markdown format.
Working with Parquet Files using Arrow
Learn to read and write Parquet files in R using the Arrow package for efficient columnar data storage.
Fast Data Manipulation with data.table
Master data.table for high-performance data manipulation in R — learn the concise i-j-k syntax for filtering, selecting, and aggregating data.
Dates and Times with lubridate
A beginner-friendly guide to parsing, manipulating, and performing arithmetic with dates and times in R using the lubridate package.
Connecting R to Databases with DBI
Learn how to connect R to databases using the DBI package for secure and efficient data operations.
Debugging R Code
Master R's built-in debugging tools: traceback, browser, debug, and error recovery to find and fix bugs in your R code.
Querying Data with DuckDB from R
Learn how to use DuckDB for high-performance analytical queries directly from R, with seamless integration through dplyr and dbplyr.
HTTP Requests with httr2
Learn how to make HTTP requests in R using the httr2 package for API interaction, web scraping, and authentication.
Interactive Maps with leaflet
Learn to create interactive web maps in R using the leaflet package. Covers markers, popups, layers, and tile providers.
R Markdown: Reproducible Reports
Learn how to create dynamic, reproducible reports in R using R Markdown. Combine narrative, code, and output in one document.
Memory Management in R
Learn how R manages memory internally, measure object sizes accurately, avoid common pitfalls, and work efficiently with large datasets.
Parallel Computing in R
Learn how to speed up R code with parallel computing using the parallel package, future/furrr, mclapply, and parLapply.
Building REST APIs with plumber
Learn how to create REST APIs in R using the plumber package. Covers decorators, routing, request handling, and deployment.
Introduction to Polars in R
Learn how to use Polars in R for high-performance data manipulation. Covers installation, DataFrames, and comparison with dplyr.
Profiling and Optimizing R Code
Learn how to profile R code to find bottlenecks and optimize performance using Rprof, profvis, and microbenchmarking.
R5 Reference Classes in R
Learn about R's reference class system for object-oriented programming. Understand reference semantics, method definition, and when to use R5 over S3 and S4.
Reproducible Environments with renv
Learn how to create isolated, reproducible R environments with renv. Manage dependencies, track versions, and share projects confidently.
S3 Classes in R
Learn how R's S3 object-oriented system works. Create classes, define generics, and implement methods for your own data types.
Organising Shiny Apps with Modules
Learn how to structure large Shiny apps using R Shiny modules for reusable UI and server components.
Testing Shiny Apps with shinytest2
Learn how to write automated tests for R Shiny applications using the shinytest2 package and testthat framework.
Using SQLite from R
Learn how to work with SQLite databases in R using DBI, RSQLite, and dbplyr for data analysis.
Spatial Data with sf
Learn to work with spatial data in R using the sf package. Covers creating, manipulating, and visualizing geographic features with simple features.
S4 Classes in R
Master R's S4 OOP system. Learn setClass(), setMethod(), validation, and inheritance.
Reproducible Pipelines with targets
A guide to building reproducible computational workflows in R using the targets package. Learn about pipeline design, branching, and cloud storage.
Web Scraping with rvest
Learn to extract data from web pages using R and rvest. This guide covers HTML parsing, CSS and XPath selectors, and respectful scraping.
Classification Models with tidymodels
Build and evaluate classification models in R with tidymodels. Covers logistic regression, decision trees, random forests, and performance metrics.
Functional Programming with purrr
Master functional programming in R with purrr. Learn map functions, error handling, and how to replace loops with elegant, maintainable code.
The apply Family in R
A complete guide to apply(), lapply(), sapply(), and tapply() for iterating over data structures in R.
Building and Publishing an R Package
A comprehensive guide to creating, documenting, testing, and publishing your own R packages using devtools, roxygen2, and testthat.
Data Wrangling with dplyr
A comprehensive guide to data manipulation in R using dplyr — covering filter, select, mutate, arrange, group_by, and summarise.
Error Handling in R
A practical guide to handling errors, warnings, and conditions in R using tryCatch, try, and custom condition classes for robust R code.
Lists vs Vectors in R
A comprehensive guide to understanding the difference between lists and vectors in R, when to use each, and how to convert between them.
Regular Expressions in R
A comprehensive guide to pattern matching and text manipulation with regular expressions in R. Learn base R functions and stringr.
Reading and Writing CSV Files in R
Learn how to read CSV files into R using base R and readr, write data frames to CSV, handle edge cases, and optimize for large files.
String Manipulation with stringr
A comprehensive guide to working with character strings in R using the stringr package — covering detection, extraction, replacement, splitting, and formatting.
Understanding R Environments
A deep dive into R environments: how R searches for objects, the search path, parent environments, and how to use environments for reliable code.
Introduction to tidymodels
Learn how to build, evaluate, and compare machine learning models in R using the tidymodels framework for tidy predictions.
Writing Good R Functions in R
Learn how to write clean, reusable R functions with proper arguments, error handling, and documentation.