# Awesome R

A curated list of awesome R packages and tools. Inspired by awesome-machine-learning.

for Top 50 CRAN downloaded packages or repos with 400+

- Awesome R
  - 2023
  - 2020
  - 2019
  - 2018
  - Integrated Development Environments
  - Syntax
  - Data Manipulation
  - Graphic Displays
  - Html Widgets
  - Reproducible Research
  - Web Technologies and Services
  - Parallel Computing
  - High Performance
  - Language API
  - Database Management
  - Machine Learning
  - Natural Language Processing
  - Bayesian
  - Optimization
  - Finance
  - Bioinformatics and Biostatistics
  - Network Analysis
  - Spatial
  - R Development
  - Logging
  - Data Packages
  - Other Tools
  - Other Interpreters
  - Learning R
- Resources
  - Websites
  - Books
  - Podcasts
  - Reference Cards
  - MOOCs
  - Lists
- Other Awesome Lists
- Contributing

## 2023

- Cookbook Polars for R

## 2020

- VSCode - vscode-R + vscode-r-lsp VSCode R Langauage Support
- gt - Easily generate information-rich, publication-quality tables from R
- lightgbm - Light Gradient Boosting Machine.
- torch - Tensors and Neural Networks with ‘GPU’ Acceleration.

## 2019

- ggforce - ggplot2 extension framework
- rayshader - 2D and 3D data visualizations via rgl
- vroom - Fast reading of delimited files

## Integrated Development Environments

Integrated Development Environment

- VSCode - vscode-R + vscode-r-lsp VSCode R Langauage Support
- RStudio - A powerful and productive user interface for R. Works great on Windows, Mac, and Linux.
- Emacs + ESS - Emacs Speaks Statistics is an add-on package for emacs text editors.
- Sublime Text + R-IDE - Add-on package for Sublime Text 2/3.
- TextMate + r.tmblundle - Add-on package for TextMate 1/2.
- StatET - An Eclipse based IDE for R.
- R Commander - A package that provides a basic graphical user interface.
- IRkernel - R kernel for Jupyter.
- Deducer - A Menu driven data analysis GUI with a spreadsheet like data editor.
- Radiant - A platform-independent browser-based interface for business analytics in R, based on the Shiny.
- Nvim-R - Neovim plugin for R.
- Jamovi and JASP - Desktop software for both Bayesian and Frequentist methods, using a UI familiar to SPSS users.
- Bio7 - An IDE contains tools for model creation, scientific image analysis and statistical analysis for ecological modelling.
- RTVS - R Tools for Visual Studio.
- radian (formerly rtichoke) - A modern R console with syntax highlighting.
- RKWard - An extensible IDE/GUI for R.

## Syntax

Packages change the way you use R.

- magrittr - Let’s pipe it.
- pipeR - Multi-paradigm Pipeline Implementation.
- lambda.r - Functional programming and simple pattern matching in R.
- purrr - A FP package for R in the spirit of underscore.js.

## Data Manipulation

Packages for cooking data.

- dplyr - Fast data frames manipulation and database query.
- data.table - Fast data manipulation in a short and flexible syntax.
- reshape2 - Flexible rearrange, reshape and aggregate data.
- tidyr - Easily tidy data with spread and gather functions.
- broom - Convert statistical analysis objects into tidy data frames.
- rlist - A toolbox for non-tabular data manipulation with lists.
- ff - Data structures designed to store large datasets.
- lubridate - A set of functions to work with dates and times.
- stringi - ICU based string processing package.
- stringr - Consistent API for string processing, built on top of stringi.
- bigmemory - Shared memory and memory-mapped matrices. The big* packages provide additional tools including linear models (biglm) and Random Forests (bigrf).
- fuzzyjoin - Join tables together on inexact matching.
- tidyverse - Easily install and load packages from the tidyverse.
- snakecase - Automatically parse and convert strings into cases like snake or camel among others.
- DataExplorer - Fast exploratory data analysis with minimum code.

## Data Formats

Packages for reading and writing data of different formats.

- arrow - An interface to the Arrow C++ library.
- feather - Fast, interoperable binary data frame storage for Python, R, and more powered by Apache Arrow.
- fst - Lightning Fast Serialization of Data Frames for R.
- haven - Improved methods to import SPSS, Stata and SAS files in R.
- jsonlite - A robust and quick way to parse JSON files in R.
- qs - Quick serialization of R objects.
- readxl - Read excel files (.xls and .xlsx) into R.
- readr - A fast and friendly way to read tabular data into R.
- rio - A Swiss-Army Knife for Data I/O.
- readODS - Read OpenDocument Spreadsheets into R as data.frames.
- RcppTOML - Rcpp Bindings to C++ parser for TOML files.
- vroom - Fast reading of delimited files.
- writexl - Portable, light-weight data frame to xlsx exporter for R.
- yaml - R package for converting objects to and from YAML.

## Graphic Displays

Packages for showing data.

- ggplot2 - An implementation of the Grammar of Graphics.
- ggfortify - A unified interface to ggplot2 popular statistical packages using one line of code.
- ggrepel - Repel overlapping text labels away from each other.
- ggalt - Extra Coordinate Systems, Geoms and Statistical Transformations for ggplot2.
- ggstatsplot - ggplot2 Based Plots with Statistical Details
- ggtree - Visualization and annotation of phylogenetic tree.
- ggtech - ggplot2 tech themes and scales
- ggplot2 Extensions - Showcases of ggplot2 extensions.
- lattice - A powerful and elegant high-level data visualization system.
- corrplot - A graphical display of a correlation matrix or general matrix. It also contains some algorithms to do matrix reordering.
- rgl - 3D visualization device system for R.
- Cairo - R graphics device using cairo graphics library for creating high-quality display output.
- extrafont - Tools for using fonts in R graphics.
- showtext - Enable R graphics device to show text using system fonts.
- animation - A simple way to produce animated graphics in R, using ImageMagick.
- gganimate - Create easy animations with ggplot2.
- misc3d - Powerful functions to deal with 3d plots, isosurfaces, etc.
- xkcd - Use xkcd style in graphs.
- imager - An image processing package based on CImg library to work with images and display them.
- hrbrthemes - 🔏 Opinionated, typographic-centric ggplot2 themes and theme components.
- waffle - 🍁 Make waffle (square pie) charts in R.
- dendextend - visualizing, adjusting and comparing trees of hierarchical clustering.
- idendro - interactive exploration of dendrograms (trees of hierarchical clustering).
- r2d3 - R Interface to D3 Visualizations
- Patchwork - Combine separate ggplots into the same graphic.
- plot3D - Plotting Multi-Dimensional Data
- plot3Drgl - Plotting Multi-Dimensional Data - Using ‘rgl’
- httpgd - Asynchronous http server graphics device for R.

## HTML Widgets

Packages for interactive visualizations.

- heatmaply - Interactive heatmaps with D3.
- d3heatmap - Interactive heatmaps with D3 (no longer maintained).
- DataTables - Displays R matrices or data frames as interactive HTML tables.
- DiagrammeR - Create JS graph diagrams and flowcharts in R.
- dygraphs - Charting time-series data in R.
- formattable - Formattable Data Structures.
- ggvis - Interactive grammar of graphics for R.
- Leaflet - One of the most popular JavaScript libraries interactive maps.
- MetricsGraphics - Enables easy creation of D3 scatterplots, line charts, and histograms.
- networkD3 - D3 JavaScript Network Graphs from R.
- scatterD3 - Interactive scatterplots with D3.
- plotly - Interactive ggplot2 and Shiny plotting with plot.ly.
- rCharts - Interactive JS Charts from R.
- rbokeh - R Interface to Bokeh.
- threejs - Interactive 3D scatter plots and globes.
- timevis - Create fully interactive timeline visualizations.
- visNetwork - Using vis.js library for network visualization.
- wordcloud2 - R interface to wordcloud2.js.
- highcharter - R wrapper for highcharts based on htmlwidgets
- echarts4r - R wrapper to Echarts version 4

## Reproducible Research

Packages for literate programming and reproducible workflows.

- knitr - Easy dynamic report generation in R.
- redoc - Reversible Reproducible Documents
- tinytex - A lightweight and easy-to-maintain LaTeX distribution
- xtable - Export tables to LaTeX or HTML.
- rapport - An R templating system.
- rmarkdown - Dynamic documents for R.
- slidify - Generate reproducible html5 slides from R markdown.
- Sweave - A package designed to write LaTeX reports using R.
- texreg - Formatting statistical models in LaTex and HTML.
- checkpoint - Install packages from snapshots on the checkpoint server.
- brew - Pre-compute data to enhance your report templates. Can be combined with knitr.
- officer - An R package to generate Microsoft Word, Microsoft PowerPoint and HTML reports.
- flextable - An R package to embed complex tables (merged cells, multi-level headers and footers, conditional formatting) in Microsoft Word, Microsoft PowerPoint and HTML reports. It cooperates with the [officer] package and integrates with [rmarkdown] reports.
- bookdown - Authoring Books with R Markdown.
- ezknitr - Avoid the typical working directory pain when using ‘knitr’
- targets - Make-like pipeline tool for organizing and running data science workflows, automatically skipping steps that have already been done. Supported by rOpenSci.
- R Suite - A package to design flexible and reproducible deployment workflows for R.
- kable - Build fancy HTML or ‘LaTeX’ tables using ‘kable()’ from ‘knitr’.

## Web Technologies and Services

Packages to surf the web.

- Web Technologies List - Information about how to use R and the world wide web together.
- shiny - Easy interactive web applications with R. See also awesome-rshiny
- shinyjs - Easily improve the user interaction and user experience in your Shiny apps in seconds.
- RCurl - General network (HTTP/FTP/…) client interface for R.
- curl - A Modern and Flexible Web Client for R.
- httr - User-friendly RCurl wrapper.
- httpuv - HTTP and WebSocket server library.
- XML - Tools for parsing and generating XML within R.
- xml2 - Optimized tools for parsing and generating XML within R.
- rvest - Simple web scraping for R, using CSSSelect or XPath syntax.
- OpenCPU - HTTP API for R handling concurrent calls, based on the Apache2 web server, to expose R code as REST web services and create full-sized, multi-page web applications.
- Rfacebook - Access to Facebook API via R.
- RSiteCatalyst - R client library for the Adobe Analytics.
- plumber - A library to expose existing R code as web API.
- golem - A framework for building production-grade Shiny apps.

## Parallel Computing

Packages for parallel computing.

- parallel - R started with release 2.14.0 which includes a new package parallel incorporating (slightly revised) copies of packages multicore and snow.
- Rmpi - Rmpi provides an interface (wrapper) to MPI APIs. It also provides interactive R slave environment.
- foreach - Executing the loop in parallel.
- future - A minimal, efficient, cross-platform unified Future API for parallel and distributed processing in R; designed for beginners as well as advanced developers.
- SparkR - R frontend for Spark.
- DistributedR - A scalable high-performance platform from HP Vertica Analytics Team.
- ddR - Provides distributed data structures and simplifies distributed computing in R.
- sparklyr - R interface for Apache Spark from RStudio.
- batchtools - High performance computing with LSF, TORQUE, Slurm, OpenLava, SGE and Docker Swarm.

## High Performance

Packages for making R faster.

- Rcpp - Rcpp provides a powerful API on top of R, make function in R extremely faster.
- Rcpp11 - Rcpp11 is a complete redesign of Rcpp, targetting C++11.
- compiler - speeding up your R code using the JIT
- cpp11 - cpp11 is a header-only R package that helps R package developers handle R objects with C++ code. It’s similar to Rcpp but with different design trade-offs and features.

## Language API

Packages for other languages.

- rJava - Low-level R to Java interface.
- jvmr - Integration of R, Java, and Scala.
- reticulate - Interface to ‘Python’.
- rJython - R interface to Python via Jython.
- rPython - Package allowing R to call Python.
- runr - Run Julia and Bash from R.
- RJulia - R package Call Julia.
- JuliaCall - Seamless Integration Between R and Julia.
- RinRuby - a Ruby library that integrates the R interpreter in Ruby.
- R.matlab - Read and write of MAT files together with R-to-MATLAB connectivity.
- RcppOctave - Seamless Interface to Octave and Matlab.
- RSPerl - A bidirectional interface for calling R from Perl and Perl from R.
- V8 - Embedded JavaScript Engine.
- htmlwidgets - Bring the best of JavaScript data visualization to R.
- rpy2 - Python interface for R.

## Database Management

Packages for managing data.

- RODBC - ODBC database access for R.
- DBI - Defines a common interface between the R and database management systems.
- elastic - Wrapper for the Elasticsearch HTTP API
- mongolite - Streaming Mongo Client for R
- odbc - Connect to ODBC databases (using the DBI interface)
- RMariaDB - An R interface to MariaDB (a replacement for the old RMySQL package)
- RMySQL - R interface to the MySQL database.
- ROracle - OCI based Oracle database interface for R.
- RPostgres - an DBI-compliant interface to the postgres database.
- RPostgreSQL - R interface to the PostgreSQL database system.
- RSQLite - SQLite interface for R
- RJDBC - Provides access to databases through the JDBC interface.
- rmongodb - R driver for MongoDB.
- redux - Redis client for R.
- RCassandra - Direct interface (not Java) to the most basic functionality of Apache Cassandra.
- RHive - R extension facilitating distributed computing via Apache Hive.
- RNeo4j - Neo4j graph database driver.
- rpostgis - R interface to PostGIS database and get spatial objects in R.

## Machine Learning

Packages for making R cleverer.

- anomalize - Tidy Anomaly Detection using Twitter’s AnomalyDetection method.
- AnomalyDetection - AnomalyDetection R package from Twitter.
- ahaz - Regularization for semiparametric additive hazards regression.
- arules - Mining Association Rules and Frequent Itemsets
- bigrf - Big Random Forests: Classification and Regression Forests for Large Data Sets
- bigRR - Generalized Ridge Regression (with special advantage for p >> n cases)
- bmrm - Bundle Methods for Regularized Risk Minimization Package
- Boruta - A wrapper algorithm for all-relevant feature selection
- BreakoutDetection - Breakout Detection via Robust E-Statistics from Twitter.
- bst - Gradient Boosting
- CausalImpact - Causal inference using Bayesian structural time-series models.
- C50 - C5.0 Decision Trees and Rule-Based Models
- caret - Classification and Regression Training
- Clever Algorithms For Machine Learning
- CORElearn - Classification, regression, feature evaluation and ordinal evaluation
- CoxBoost - Cox models by likelihood based boosting for a single survival endpoint or competing risks
- Cubist - Rule- and Instance-Based Regression Modeling
- e1071 - Misc Functions of the Department of Statistics (e1071), TU Wien
- earth - Multivariate Adaptive Regression Spline Models
- elasticnet - Elastic-Net for Sparse Estimation and Sparse PCA
- ElemStatLearn - Data sets, functions and examples from the book: “The Elements of Statistical Learning, Data Mining, Inference, and Prediction” by Trevor Hastie, Robert Tibshirani and Jerome Friedman
- evtree - Evolutionary Learning of Globally Optimal Trees
- fable - a collection of commonly used univariate and multivariate time series forecasting models
- prophet - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
- FSelector - A feature selection framework, based on subset-search or feature ranking approches.
- frbs - Fuzzy Rule-based Systems for Classification and Regression Tasks
- GAMBoost - Generalized linear and additive models by likelihood based boosting
- gamboostLSS - Boosting Methods for GAMLSS
- gbm - Generalized Boosted Regression Models
- glmnet - Lasso and elastic-net regularized generalized linear models
- glmpath - L1 Regularization Path for Generalized Linear Models and Cox Proportional Hazards Model
- GMMBoost - Likelihood-based Boosting for Generalized mixed models
- grplasso - Fitting user specified models with Group Lasso penalty
- grpreg - Regularization paths for regression models with grouped covariates
- h2o - Deeplearning, Random forests, GBM, KMeans, PCA, GLM
- hda - Heteroscedastic Discriminant Analysis
- ipred - Improved Predictors
- kernlab - kernlab: Kernel-based Machine Learning Lab
- klaR - Classification and visualization
- kohonen - Supervised and Unsupervised Self-Organising Maps.
- L0Learn - Fast algorithms for best subset selection
- lars - Least Angle Regression, Lasso and Forward Stagewise
- lasso2 - L1 constrained estimation aka ‘lasso’
- LiblineaR - Linear Predictive Models Based On The Liblinear C/C++ Library
- lightgbm - Light Gradient Boosting Machine.
- lme4 - Mixed-effects models
- nlme - Mixed-effects models, handling user-specified matrix of residual covariance, relevant for the analysis of repeated observations in longitudinal trials
- glmmTMB - Generalized mixed-effects models, handling user-specified matrix of residual covariance, relevant for the analysis of repeated observations in longitudinal trials
- LogicReg - Logic Regression
- maptree - Mapping, pruning, and graphing tree models
- mboost - Model-Based Boosting
- Machine Learning For Hackers
- mlr - Extensible framework for classification, regression, survival analysis and clustering [DEPRECIATED]
- mlr3 - Next generation extensible framework for classification, regression, survival analysis and clustering
- mvpart - Multivariate partitioning
- MXNet - MXNet brings flexible and efficient GPU computing and state-of-art deep learning to R.
- ncvreg - Regularization paths for SCAD- and MCP-penalized regression models
- nnet - eed-forward Neural Networks and Multinomial Log-Linear Models
- oblique.tree - Oblique Trees for Classification Data
- pamr - Pam: prediction analysis for microarrays
- party - A Laboratory for Recursive Partytioning
- partykit - A Toolkit for Recursive Partytioning
- penalized - L1 (lasso and fused lasso) and L2 (ridge) penalized estimation in GLMs and in the Cox model
- penalizedLDA - Penalized classification using Fisher’s linear discriminant
- penalizedSVM - Feature Selection SVM using penalty functions
- quantregForest - quantregForest: Quantile Regression Forests
- randomForest - randomForest: Breiman and Cutler’s random forests for classification and regression.
- randomForestSRC - randomForestSRC: Random Forests for Survival, Regression and Classification (RF-SRC).
- ranger - A Fast Implementation of Random Forests.
- rattle - Graphical user interface for data mining in R.
- rda - Shrunken Centroids Regularized Discriminant Analysis
- rdetools - Relevant Dimension Estimation (RDE) in Feature Spaces
- REEMtree - Regression Trees with Random Effects for Longitudinal (Panel) Data
- relaxo - Relaxed Lasso
- rgenoud - R version of GENetic Optimization Using Derivatives
- rgp - R genetic programming framework
- Rmalschains - Continuous Optimization using Memetic Algorithms with Local Search Chains (MA-LS-Chains) in R
- rminer - Simpler use of data mining methods (e.g. NN and SVM) in classification and regression
- ROCR - Visualizing the performance of scoring classifiers
- RoughSets - Data Analysis Using Rough Set and Fuzzy Rough Set Theories
- rpart - Recursive Partitioning and Regression Trees
- RPMM - Recursively Partitioned Mixture Model
- RSNNS - Neural Networks in R using the Stuttgart Neural Network Simulator (SNNS)
- Rsomoclu - Parallel implementation of self-organizing maps.
- RWeka - R/Weka interface
- RXshrink - RXshrink: Maximum Likelihood Shrinkage via Generalized Ridge or Least Angle Regression
- sda - Shrinkage Discriminant Analysis and CAT Score Variable Selection
- SDDA - Stepwise Diagonal Discriminant Analysis
- SuperLearner and subsemble - Multi-algorithm ensemble learning packages.
- survminer - Survival Analysis & Visualization
- survival - Survival Analysis
- svmpath - svmpath: the SVM Path algorithm
- tgp - Bayesian treed Gaussian process models
- tidymodels - A collection of packages for modeling and statistical analysis that share the underlying design philosophy, grammar, and data structures of the tidyverse.
- torch - Tensors and Neural Networks with ‘GPU’ Acceleration.
- tree - Classification and regression trees
- varSelRF - Variable selection using random forests
- xgboost - eXtreme Gradient Boosting Tree model, well known for its speed and performance.

## Natural Language Processing

Packages for Natural Language Processing.

- text2vec - Fast Text Mining Framework for Vectorization and Word Embeddings.
- tm - A comprehensive text mining framework for R.
- openNLP - Apache OpenNLP Tools Interface.
- koRpus - An R Package for Text Analysis.
- zipfR - Statistical models for word frequency distributions.
- NLP - Basic functions for Natural Language Processing.
- LDAvis - Interactive visualization of topic models.
- topicmodels - Topic modeling interface to the C code developed by by David M. Blei for Topic Modeling (Latent Dirichlet Allocation (LDA), and Correlated Topics Models (CTM)).
- syuzhet - Extracts sentiment from text using three different sentiment dictionaries.
- SnowballC - Snowball stemmers based on the C libstemmer UTF-8 library.
- quanteda - R functions for Quantitative Analysis of Textual Data.
- Topic Models Resources - Topic Models learning and R related resources.
- NLP for - NLP related resources in R. @Chinese
- MonkeyLearn - 🐒 R package for text analysis with Monkeylearn 🐒.
- tidytext - Implementing tidy principles of Hadley Wickham to text mining.
- utf8 - Manipulating and printing UTF-8 text that fixes multiple bugs in R’s UTF-8 handling.
- corporaexplorer - Dynamic exploration of text collections

## Bayesian

Packages for Bayesian Inference.

- coda - Output analysis and diagnostics for MCMC.
- mcmc - Markov Chain Monte Carlo.
- MCMCpack - Markov chain Monte Carlo (MCMC) Package.
- R2WinBUGS - Running WinBUGS and OpenBUGS from R / S-PLUS.
- BRugs - R interface to the OpenBUGS MCMC software.
- rjags - R interface to the JAGS MCMC library.
- rstan - R interface to the Stan MCMC software.

## Optimization

Packages for Optimization.

- lpSolve - Interface to `Lp_solve` to Solve Linear/Integer Programs.
- minqa - Derivative-free optimization algorithms by quadratic approximation.
- nloptr - NLopt is a free/open-source library for nonlinear optimization.
- ompr - Model mixed integer linear programs in an algebraic way directly in R.
- Rglpk - R/GNU Linear Programming Kit Interface
- ROI - The R Optimization Infrastructure (‘ROI’) is a sophisticated framework for handling optimization problems in R.

## Finance

Packages for dealing with money.

- quantmod - Quantitative Financial Modelling & Trading Framework for R.
- pedquant - Public Economic Data and Quantitative Analysis
- TTR - Functions and data to construct technical trading rules with R.
- PerformanceAnalytics - Econometric tools for performance and risk analysis.
- zoo - S3 Infrastructure for Regular and Irregular Time Series.
- xts - eXtensible Time Series.
- tseries - Time series analysis and computational finance.
- fAssets - Analysing and Modelling Financial Assets.
- scorecard - Credit Risk Scorecard

## Bioinformatics and Biostatistics

Packages for processing biological datasets.

- Bioconductor - Tools for the analysis and comprehension of high-throughput genomic data.
- genetics - Classes and methods for handling genetic data.
- gap - An integrated package for genetic data analysis of both population and family data.
- ape - Analyses of Phylogenetics and Evolution.
- pheatmap - Pretty heatmaps made easy.
- lme4 - Generalized mixed-effects models.
- nlme - Mixed-effects models, handling user-specified matrix of residual covariance, relevant for the anaysis of repeated observations in longitudinal trials.
- glmmTMB - Generalized mixed-effects models, handling user-specified matrix of residual covariance, relevant for the anaysis of repeated observations in longitudinal trials.

## Network Analysis

Packages to construct, analyze and visualize network data.

- Network Analysis List - Network Analysis related resources.
- igraph - A collection of network analysis tools.
- network - Basic tools to manipulate relational data in R.
- sna - Basic network measures and visualization tools.
- netdiffuseR - Tools for Analysis of Network Diffusion.
- networkDynamic - Support for dynamic, (inter)temporal networks.
- ndtv - Tools to construct animated visualizations of dynamic network data in various formats.
- statnet - The project behind many R network analysis packages.
- ergm - Exponential random graph models in R.
- latentnet - Latent position and cluster models for network objects.
- tnet - Network measures for weighted, two-mode and longitudinal networks.
- rgexf - Export network objects from R to GEXF, for manipulation with network software like Gephi or Sigma.
- visNetwork - Using vis.js library for network visualization.
- tidygraph - A tidy API for graph manipulation

## Spatial

Packages to explore the earth.

- CRAN Task View: Analysis of Spatial Data- Spatial Analysis related resources.
- Leaflet - One of the most popular JavaScript libraries interactive maps.
- ggmap - Plotting maps in R with ggplot2.
- REmap - R interface to the JavaScript library ECharts for interactive map data visualization.
- sf - Improved Classes and Methods for Spatial Data.
- sp - Classes and Methods for Spatial Data.
- rgeos - Interface to Geometry Engine - Open Source
- rgdal - Bindings for the Geospatial Data Abstraction Library
- maptools - Tools for Reading and Handling Spatial Objects
- gstat - Spatial and spatio-temporal geostatistical modelling, prediction and simulation.
- spacetime - R classes and methods for spatio-temporal data.
- RColorBrewer - Provides color schemes for maps
- spatstat - Spatial Point Pattern Analysis, Model-Fitting, Simulation, Tests
- spdep - Spatial Dependence: Weighting Schemes, Statistics and Models
- tigris - Download and use Census TIGER/Line shapefiles in R
- GWmodel - Geographically-Weighted Models
- tmap - R package for thematic maps

## R Development

Packages for packages.

- Package Development List - R packages to improve package development.
- promises - Abstractions for Promise-Based Asynchronous Programming
- devtools - Tools to make an R developer’s life easier.
- testthat - An R package to make testing fun.
- R6 - simpler, faster, lighter-weight alternative to R’s built-in classes.
- pryr - Make it easier to understand what’s going on in R.
- roxygen - Describe your functions in comments next to their definitions.
- lineprof - Visualise line profiling results in R.
- renv - Make your R projects more isolated, portable, and reproducible.
- installr - Functions for installing softwares from within R (for Windows).
- import - An import mechanism for R.
- box - A modern module system for R.
- Rocker - R configurations for Docker.
- RStudio Addins - List of RStudio addins.
- drat - Creation and use of R repositories on GitHub or other repos.
- covr - Test coverage for your R package and (optionally) upload the results to coveralls or codecov.
- lintr - Static code analysis for R to enforce code style.
- staticdocs - Generate static html documentation for an R package.
- sinew - Generate roxygen2 skeletons populated with information scraped from the function script.

## Logging

Packages for Logging

- futile.logger - A logging package in R similar to log4j
- log4r - A log4j derivative for R
- logging - A logging package emulating the python logging package.

## Data Packages

Handy Data Packages

- engsoccerdata - English and European soccer results 1871-2016.
- gapminder - Excerpt from the Gapminder dataset (data about countries through the past 50 years).
- wbstats - Tools for searching and downloading data and statistics from the World Bank Data API and the World Bank Data Catalog API.
- ICON - complex systems & networks datasets from the Index of COmplex Networks (ICON) database webpage.
- RCOBOLDI - Import COBOL CopyBook data files directly into R as properly structured data frames. Package builds are available via Drat and DockerHub.

## Other Tools

Handy Tools for R

- git2r - Gives you programmatic access to Git repositories from R.
- Conda - Most R packages are available through the Conda polyglot cross-platform dependency manager.

## Other Interpreters

Alternative R engines.

- CXXR - Refactorising R into C++.
- fastR - FastR is an implementation of the R Language in Java atop Truffle and Graal.
- pqR - a “pretty quick” implementation of R
- renjin - a JVM-based interpreter for R.
- rho - Refactor the interpreter of the R language into a fully-compatible, efficient, VM for R.
- riposte - a fast interpreter and JIT for R.
- TERR - TIBCO Enterprise Runtime for R.

## Learning R

Packages for Learning R.

- swirl - An interactive R tutorial directly in your R console.
- DataScienceR - a list of R tutorials for Data Science, NLP and Machine Learning.

# Resources

Where to discover new R-esources.

## Websites

### Manuals

- R-project - The R Project for Statistical Computing.
- An Introduction to R - A very good introductory text on R, also covers some advanced topic. See also the `Manuals` section on CRAN
- CRAN Contributed Docs - CRAN Contributed Documentation in many languages.
- Quick-R - An excellent quick reference
- tryR - A quick course for getting started with R.

### Tools and References

- RDocumentation - Search through all CRAN, Bioconductor, Github packages and their archives with RDocumentation.
- rdrr.io - Find R package documentation. Try R packages in your browser.
- CRAN Task Views - Task Views for CRAN packages.
- rnotebook.io - Create online R Jupyter Notebooks for free.

### News and Info

- R Weekly - Weekly updates about R and Data Science. R Weekly is openly developed on GitHub.
- R Bloggers - There are people scattered across the Web who blog about R. This is simply an aggregator of many of those feeds.
- R-users - A job board for R users (and the people who are looking to hire them)

## Books

### Free and Online

- R for Data Science by Garrett Grolemund & Hadley Wickham - Free book from RStudio developers with emphasis on data science workflow.
- R Cookbook by Winston Chang - A problem-oriented online book that supports his R Graphics Cookbook, 2nd ed. (2018).
- Advanced R, 2nd ed. by Hadley Wickham (2019) - An online version of the Advanced R book.
- R Packages, 2nd ed. by Hadley Wickham & Jennifer Bryan - A book (in paper and website formats) on writing R packages.
- Books written as part of the Johns Hopkins Data Science Specialization:
  - Exploratory Data Analysis with R by Roger D. Peng (2016) - Basic analytical skills for all sorts of data in R.
  - R Programming for Data Science by Roger D. Peng (2019) - More advanced data analysis that relies on R programming.
  - Report Writing for Data Science in R by Roger D. Peng (2019) - R-based methods for reproducible research and report generation.
- R for SAS and SPSS users by Bob Muenchen (2012) - An excellent resource for users already familiar with SAS or SPSS.
- Introduction to Statistical Learning with Application in R by Gareth James et al. (2017) - A simplified and “operational” version of The Elements of Statistical Learning. Free softcopy provided by its authors.
- The R Inferno by Patrick Burns (2011) - Patrick Burns gives insight into R’s ins and outs along with its quirks!
- Efficient R Programming by Colin Gillespie & Robin Lovelace (2017) - An online version of the O’Reilly book: Efficient R Programming.
- The R Programming Wikibook - A collaborative handbook for R.

### Paid

- The Art of R Programming - It’s a good resource for systematically learning fundamentals such as types of objects, control statements, variable scope, classes and debugging in R.
- R Cookbook, 2nd ed. by JD Long & Paul Teetor (2019) - A quick and simple introduction to conducting many common statistical tasks with R.
- R in Action - This book aims at all levels of users, with sections for beginning, intermediate and advanced R ranging from “Exploring R data structures” to running regressions and conducting factor analyses.
- Use R! Series by Springer - This series of inexpensive and focused books from Springer publish shorter books aimed at practitioners. Books can discuss the use of R in a particular subject area, such as Bayesian networks, ggplot2 and Rcpp.
- Learning R Programming - Learning R as a programming language from basics to advanced topics.

### Book/monograph Lists and Reviews

- R Books List - List of R Books.
- Readings in Applied Data Science - These readings reflect Hadley’s personal thoughts about applied data science.

## Podcasts

- Not So Standard Deviations - The Data Science Podcast.
  - @Roger Peng and @Hilary Parker.
- R World News - R World News helps you keep up with happenings within the R community.
  - @Bob Rudis and @Jay Jacobs.
- The R-Podcast - Giving practical advice on how to use R.
  - @Eric Nantz.
- R Talk - News and discussions of statistical software and language R.
  - @Oliver Keyes, @Jasmine Dumas, @Ted Hart and @Mikhail Popov.
- R Weekly - Weekly news updates about the R community.

## Reference Cards

- RStudio Cheat Sheets
- R Reference Card 2.0 - Material from R for Beginners by permission of Emmanuel Paradis (Version 2 by Matt Baggott).
- Regression Analysis Refcard - R Reference Card for Regression Analysis.
- Reference Card for ESS - Reference Card for ESS.

## MOOCs

Massive open online courses.

- Johns Hopkins University Data Science Specialization - 9 courses including: Introduction to R, literate analysis tools, Shiny and some more.
- HarvardX Biomedical Data Science - Introduction to R for the Life Sciences.
- Explore Statistics with R - Covers introduction, data handling and statistical analysis in R.

## Lists

Great resources for learning domain knowledge.

- Books - List of R Books.
- ggplot2 Extensions - Showcases of ggplot2 extensions.
- Natural Language Processing - NLP related resources in R. @Chinese
- Network Analysis - Network Analysis related resources.
- Open Data - Using R to obtain, parse, manipulate, create, and share open data.
- Posts - Great R blog posts or Rticles.
- Package Development - R packages to improve package development.
- R Project Conferences - Information about useR! Conferences and DSC Conferences.
- RStartHere - A guide to some of the most useful R packages, organized by workflow.
- RStudio Addins - List of RStudio addins.
- Topic Models - Topic Models learning and R related resources.
- Web Technologies - Information about how to use R and the world wide web together.

## R Ecosystems

R communities and package collections (in alphabetical order):

- rOpenGov Open government data, computational social science, digital humanities
- rOpenHealth Public health data
- rOpenSci Open science

## 2018

- fable - univariate and multivariate time series forecasting models
- r2d3 - R Interface to D3 Visualizations
- rstats-ed - List of courses teaching R
- promises - Abstractions for Promise-Based Asynchronous Programming
- tinytex - A lightweight and easy-to-maintain LaTeX distribution
- Readings in Applied Data Science - These readings reflect Hadley’s personal thoughts about applied data science.

## 2017

- prophet - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
- tidyverse - Easily install and load packages from the tidyverse
- purrr - A functional programming toolkit for R
- hrbrthemes - 🔏 Opinionated, typographic-centric ggplot2 themes and theme components
- xaringan - Create HTML5 slides with R Markdown and the JavaScript library
- blogdown - Create Blogs and Websites with R Markdown
- glue - Glue strings to data in R. Small, fast, dependency free interpreted string literals.
- covr - Test coverage reports for R
- lintr - Static Code Analysis for R
- reprex - Render bits of R code for sharing, e.g., on GitHub or StackOverflow.
- reticulate - R Interface to Python
- tensorflow - TensorFlow for R
- utf8 - Manipulating and printing UTF-8 text that fixes multiple bugs in R’s UTF-8 handling.
- Patchwork - Combine separate ggplots into the same graphic.

# Other Awesome Lists

- awesome-awesomeness
- lists
- awesome-rshiny

# Contributing

Your contributions are always welcome!

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License - CC BY-NC-SA 4.0