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
- Other Awesome Lists
- Contributing
- 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.
- ggforce - ggplot2 extension framework
- rayshader - 2D and 3D data visualizations via rgl
- vroom - Fast reading of delimited files
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.
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.
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.
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.
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.
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
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'.
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.
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.
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.
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.
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