A curated list of awesome R packages and tools. Inspired by awesome-machine-learning.
For better navigation, see https://awesome-r.com
for Top 50 CRAN downloaded packages or repos with 400+
- Awesome R
- 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
- Network Analysis
- Spatial
- R Development
- Logging
- Data Packages
- Other Tools
- Other Interpreters
- Learning R
- Resources
- Other Awesome Lists
- Contributing
Integrated Development Environments
Integrated Development Environment
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.
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.
- 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.
HTML Widgets
Packages for interactive visualizations.
Reproducible Research
Packages for literate programming.
Web Technologies and Services
Packages to surf the web.
Parallel Computing
Packages for parallel computing.
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
Language API
Packages for other languages.
- rJava - Low-level R to Java interface.
- jvmr - Integration of R, Java, and Scala.
- 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.
- 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
- RMySQL - R interface to the MySQL database.
- ROracle - OCI based Oracle database interface for R.
- 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.
- rredis - Redis client for R.
- RCassandra - Direct interface (not Java) to the most basic functionality of Apache Cassanda.
- 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.
- 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
- forecast - Timeseries forecasting using ARIMA, ETS, STLM, TBATS, and neural network models
- forecastHybrid - Automatic ensemble and cross validation of ARIMA, ETS, STLM, TBATS, and neural network models from the "forecast" package
- 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.
- 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
- lme4
- Mixed-effects models
- 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
- 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).
- 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.
- svmpath - svmpath: the SVM Path algorithm
- tgp - Bayesian treed Gaussian process models
- 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.
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.
- minqa - Derivative-free optimization algorithms by quadratic approximation.
- nloptr - NLopt is a free/open-source library for nonlinear optimization.
- lpSolve - Interface to
Lp_solveto Solve Linear/Integer Programs.
Finance
Packages for dealing with money.
Bioinformatics
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.
- ddpcr - Analysis and visualization of Droplet Digital PCR data.
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.
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.
- 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
R Development
Packages for packages.
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 throught the paste 50 years).
Other Tools
Handy Tools for R
- git2r - Gives you programmatic access to Git repositories from R.
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
- R-project - The R Project for Statistical Computing.
- 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.
- DataCamp - Learn R data analytics online.
- Quick-R - An excellent quick reference.
- Advanced R
- An online version of the Advanced R book.
- Efficient R Programming - An online home of the O’Reilly book: Efficient R Programming.
- CRAN Task Views - Task Views for CRAN packages.
- The R Programming Wikibook - A collaborative handbook for R.
- R-users - A job board for R users (and the people who are looking to hire them)
- R Cookbook - A problem-oriented website that supports the R Graphics Cookbook.
- tryR - A quick course for getting started with R.
- RDocumentation - Search through all CRAN, Bioconductor, Github packages and their archives with RDocumentation.
Books
- R Books List - List of R Books.
- 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.
- Free Books - CRAN Contributed Documentation in many languages.
- R Cookbook - A quick and simple introduction to conducting many common statistical tasks with R.
- Books written as part of the Johns Hopkins Data Science Specialization:
- Exploratory Data Analysis with R - Basic analytical skills for all sorts of data in R.
- R Programming for Data Science - More advanced data analysis that relies on R programming.
- Report Writing for Data Science in R - R-based methods for reproducible research and report generation.
- R Packages - A book (in paper and website formats) on writing R packages.
- 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! - 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.
- R for SAS and SPSS users - An excelllent resource for users already familiar with SAS or SPSS.
- An Introduction to R - A very good introductory text on R, also covers some advanced topics.
- Introduction to Statistical Learning with Application in R - A simplified and "operational" version of The Elements of Statistical Learning. Free softcopy provided by its authors.
- The R Inferno - Patrick Burns gives insight into R's ins and outs along with its quirks!
- R for Data Science - Free book from RStudio developers with emphasis on data science workflow.
- Learning R Programming - Learning R as a programming language from basics to advanced topics.
Podcasts
- Not So Standard Deviations - The Data Science Podcast.
- 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.
- R Talk - News and discussions of statistical software and language R.
- R Weekly - Weekly news updates about the R community.
Reference Cards
- 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.
- R Markdown Cheat sheet - Quick reference guide for writing reports with R Markdown.
- Shiny Cheat sheet - Quick reference guide for building Shiny apps.
- ggplot2 Cheat sheet - Quick reference guide for data visualisation with ggplot2.
- devtools Cheat sheet - Quick reference guide to package development in R.
MOOCs
Massive open online courses.
- The Analytics Edge - Hands-on introduction to data analysis with R from MITx.
- 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.
Other Awesome Lists
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