A curated list of amazingly awesome R libraries, resources and package collection.
Please see author's details.
Collaboration and pull requests are always welcomed!
- Road2R
Packages that enable you to manipulate data
- dplyr - a grammar of data manipulation.
- tibble - efficient display structure for tabular data.
- dbplyr - A 'dplyr' Back End for Databases.
- plyr - the split-apply-combine paradigm for R.
- tidyr - Easily Tidy Data with 'spread()' and 'gather()' Functions.
- jsonlite - A Robust, High Performance JSON Parser and Generator for R.
- stringr - Simple, Consistent Wrappers for Common String Operations.
- stringi - Character String Processing Facilities.
- data.table - Extension of "data.frame".
- magrittr - A Forward-Pipe Operator for R.
- reshape2 - Flexibly Reshape Data: A Reboot of the Reshape Package.
- forcats - Tools for Working with Categorical Variables (Factors).
- broom - Convert Statistical Analysis Objects into Tidy Data Frames.
- Matrix - Sparse and Dense Matrix Classes and Methods.
- lubridate - Make Dealing with Dates a Little Easier.
- xts - tools for time series based data.
- hashmap - The Faster Hash Map.
- rlist - A Toolbox for Non-Tabular Data Manipulation.
- yaml - Methods to Convert R Data to YAML and Back.
- xml2 - Parse XML.
- lobstr - lobstr provides tools in the same vein as str(), which allow you to dig into the detail of an object.
- reticulate - Interface to 'Python'.
- moderndive - An R package of datasets and wrapper functions for tidyverse-friendly introductory linear regression.
Packages that enable you to plot
- ggplot2 - Create Elegant Data Visualisations Using the Grammar of Graphics.
- gganinate - A Grammar of Animated Graphics.
- ggedit - Interactive 'ggplot2' Layer and Theme Aesthetic Editor.
- ggfittext - Fit Text Inside a Box in 'ggplot2'.
- ggforce - Accelerating 'ggplot2'.
- gggenes - Draw Arrow Maps in 'ggplot2'.
- ggnetwork - Geometrics to Plot Networks with ''ggplot2''.
- ggmap - Spatial Visualization with ''ggplot2''.
- ggpubr - ''ggplot2'' Based Publication Ready Plots.
- ggrepel - Automatically Position Non-Overlapping Text Labels with 'ggplot2'.
- ggridge - Ridgeline Plots in 'ggplot2'.
- ggsci - Scientific Journal and Sci-Fi Themed Color palettes for 'ggplot2'.
- ggsignif - Significance Brackets for 'ggplot2'.
- ggthemes - Extra Themes, Scales and Geoms for 'ggplot2'.
- ggvis - Interactive Grammar of Graphics.
- cowplot - Streamlined Plot Theme and Plot Annotations for 'ggplot2'.
- treemapify - Draw Treemaps in 'ggplot2'.
- ggalluvial - Alluvial Diagrams in 'ggplot2'.
- GGally - Extension to 'ggplot2'.
- alluvial - Alluvial Diagrams.
- corrplot - Visualization of a Correlation Matrix.
- arulesViz - Visualizing Association Rules and Frequent Itemsets.
- gplots - Various R Programming Tools for Plotting Data.
- rpart.plot - Plot 'rpart' Models: An Enhanced Version of 'plot.rpart'.
- survival - Survival Analysis.
- pheatmap - Pretty Heatmap.
- ROCR - Visualization the Performance of Scoring Classifiers.
- pROC - Display and Analyze ROC Curves.
- ggstance - Horizontal versions of common plots.
- ggExtra - Marginal histograms for a plot.
- patchwork - Simple to combine separate ggplots into the same graphic.
Packages that enable you to import, load and save data
- readr - Read Rectangular Text Data.
- openxlsx - Read, Write and Edit XLSX Files
- readxl - Read Excel Files.
- clipr - Read and Write from the System Clipboard.
- data.table - Extension of "data.frame".
- feather - R Bindings to the Feather 'API'.
- haven - Import and Export 'SPSS', 'Stata' and 'SAS' Files.
- httr - Tools for Working with URLs and HTTP.
- rvest - Easily Harvest (Scrape) Web Pages.
- DBI - R Database Interface
- RMySQL - MySQL driver for DBI
- RPostgres - Postgres driver for DBI
- RSQLite - SQlite driver for DBI
- git2r - Provides Access to Git Repositories.
- RCurl - General Network (HTTP/FTP/...) Client Interface for R.
packages that enable you to visualize network
- igraph - Network Analysis and Visualization.
- ggnetwork - Geometrics to Plot Networks with ''ggplot2''.
- network3D - D3 JavaScript Network Graphs from R.
- network - Classes for Relational Data.
- sna - Tools for Social Network Analysis.
- snow - Simple Network of Workstations.
- visNetwork - Network Visualization using 'vis.js' Library.
packages that enable you to make interactive graphics
- htmlwidgets - framework for creating JavaScript widgets with R.
- networkD3 - Interative d3 network graphs.
- d3heatmap - Interactive d3 heatmaps.
- DT - Interactive tables.
- REmap - Create html maps by Echarts.
- echarts4r - EChart htmlwidget.
- leaflet - Interactive maps.
- plotly - Interactive plots.
- Highcharter - Interactive Highcharts plots.
- visNetwork - Interactive network graphs.
packages that enable you to draw word cloud
- wordcloud - Word Clouds.
- wordcloud2 - Create Word Cloud by 'htmlwidget'.
packages that enable you to do text mining
- tidytext - Text Mining using 'dplyr', 'ggplot2', and Other Tidy Tools.
- widyr - Widen, Process, then Re-Tidy Data.
- tm - Text Mining Package.
- NLP - Natural Language Processing Infrastructure.
- janeaustenr - Jane Austen's Complete Novels.
packages that enable you to deploy machine learning algorithms
- caret - Classification and Regression Training.
- xgboost - Extreme Gradient Boosting.
- glmnet - Lasso and Elastic-Net Regularized Generalized Linear Models.
- e1071 - Misc Functions of the Department of Statistics, ProbabilityTheory Group (Formerly: E1071), TU Wien.
- arules - Mining Association Rules and Frequent Itemsets.
- car - Companion to Applied Regression.
- igraph - PageRank algotirhm.
- kernlab - Kernel-Based Machine Learning Lab.
- modelr - Modelling Functions that Work with the Pipe.
- gbm - gradient boosted regression models.
- nlme - Linear and Nonlinear Mixed Effects Models.
- randomForest - Breiman and Cutler's Random Forests for Classification and Regression.
- rpart - Recursive Partitioning and Regression Trees.
- boot - Bootstrap Functions (Originally by Angelo Canty for S).
- gbm - gradient boosted regression models.
- nnet - Feed-Forward Neural Networks and Multinomial Log-Linear Models.
- neuralnet - Training of Neural Networks.
- h2o - parallel distributed machine learning algorithms.
- mlr - Machine Learning in R.
- ggpomological - Pomological Colors.
- visdat - Preliminary Exploratory Visualisation of Data.
- lares - R Package for Analytics and Machine Learning.
- mlr3 - A clean, object-oriented rewrite of mlr.
- mlrCPO - Composable Preprocessing Operators for MLR.
packages that enable you to play with time
- xts - eXtensible Time Series.
- forecast - Forecasting Functions for Time Series and Linear Models.
- zoo - S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).
- tsfeatures - The R package tsfeatures provides methods for extracting various features from time series data.
packages that enable you to write markdwon in R
- rmarkdown - Dynamic Documents for R.
- rsconnect - Deployment Interface for R Markdown Documents and Shiny Applications.
- knit - A General-Purpose Package for Dynamic Report Generation in R.
- tinytex - tinytex: Helper Functions to Install and Maintain TeX Live, and Compile LaTeX Documents.
packages that enable you to develop your own project
- devtools - Tools to Make Developing R Packages Easier.
- Rcpp - Seamless R and C++ Integration.
- testthat - Unit Testing for R.
- roxygen2 - In-Line Documentation for R.
- bindrcpp - An 'Rcpp' Interface to Active Bindings.
- RStudio Desktop IDE - IDE.
- RStudio Server Open Source - server IDE.
- Anaconda - The World's Most Popular Python/R Data Science Platform.
- Visual Studio Code - Open source code editor.
- goodpractice - Advice on R Package Building.
- usethis - Automate Package and Project Setup.
Online blogs.
- RPubs - Easy web publishing from R.
- Shinyapps - Share your Shiny Applications Online.
- R-bloggers - R news and tutorials contributed by (750) R bloggers.
- RWeekly - Weekly Updates from the Entire R Community.
- RDocumentation - Search all 16,944 CRAN, Bioconductor and GitHub packages.
- Rstudio Community - The Rstudio Community.
- 生信爱好者周刊 - 生信爱好者周刊,Weekly of bioinformatics lovers.
Online learning materials
- Writing R extension - The online pdf of telling you how to write your own packages.
- R packages - This is the book site for “R packages”. It was published with O’Reilly in April 2015.
- R for Data Science - This is the website for “R for Data Science”.
- Text Mining with R - A Tidy Approach - This is the website for Text Mining with R.
- R Start Here - A guide to some of the most useful R Packages that we know about.
- ggplot2 Doc - Reference of ggplot2.
- Plotly for R - plotly for R.
- Efficient R programming - Efficient R programming by Colin Gillespie and Robin Lovelace.
- Advanced R - Advanced R.
- Advanced R Solutions - Advanced R Solutions.
- bookdown: Authoring Books and Technical - Documents with R Markdown.
- Geocomputation with R - Geocomputation with R.
- knitr - knitr: elegant, flexible, and fast dynamic report generation with R.
- Machine Learning with TensorFlow(R version) - This repository is for practicing R tensorflow modeling exercises.
- R的极客理想-高级开发篇 - R的极客理想-高级开发篇.
- swirl - swirl is a platform for learning (and teaching) statistics and R simultaneously and interactively.
- stats337 - Stats 337: Readings in Applied Data Science.
- Data Science in Education Book - Book on data science (or data analysis) in education using R.
- datascience-box - Data Science Course in a Box.
- R語言翻轉教室 - 全中文R語言互動式教材.
- Statistical Rethinking with brms ggplot2 and the tidyverse - Statistical Rethinking with brms, ggplot2, and the tidyverse.
- DataScienceR - a curated list of R tutorials for Data Science, NLP and Machine Learning.
- MLwR - Machine Learning with R.
- ml-course-r - R code for the assignments of Ng's Coursera machine learning course.
- Book on data science (or data analysis) in education using R - Book on data science (or data analysis) in education using R.
- R Workshops for Beginners - No programming experience required!
- Shiny Tutorial in Chinese - Shiny中文教程.
- R语言教程 - R Tutorial From Peking University (Mandarin Chinese).
- Tidy evaluation - This guide is now superseded by more recent efforts at documenting tidy evaluation in a user-friendly way.
- DIYtranscriptomics - A full course on the analysis of RNA-seq data using R programming environment and the Bioconductor suite of software packages – a versatile and robust collection of tools for bioinformatics, statistics, and plotting.
Cheatsheets of Rstudio packages
- RStudio IDE Cheat Sheet - RStudio IDE Cheat Sheet.
- R Markdown Cheat Sheet - R Markdown Cheat Sheet.
- Shiny - Shiny Cheat Sheet.
- Package Development Cheat Sheet - Package Development Cheat Sheet.
- Data Import Cheat Sheet - Data Import Cheat Sheet.
- Data Transformation Cheat Sheet - Data Transformation Cheat Sheet(dplyr).
- Data Visualization Cheat Sheet - Data Visualization Cheat Sheet with ggplot2.
- Apply Functions Cheat Sheet with purrr - Apply Functions Cheat Sheet.
- Deep Learning with Keras Cheat Sheet - Deep Learning with Keras Cheat Sheet.
- Sparklyr Cheat Sheet - Sparklyr Cheat Sheet.
- Work with Strings - Work with Strings Cheat Sheet.
- Dates and times with lubridate - Dates and Times Cheat Sheet.
- Advanced R - Environments, data Structures, Functions, Subsetting and more by Arianne Colton and Sean Chen.
- Caret - Modeling and Machine Learning in R with the caret package by Max Kuhn.
- data.table - Data manipulation with data.table, cheatsheet by Erik Petrovski.
- Base R - Base R.
- cartography - Thematic maps with spatial objects by Timothée Giraud.
- estimatr - Fast, robust estimators for common models.
- eurostat - R tools to access the eurostat database, by rOpenGov.
- h2o - The R interface to h20’s algorithms for big data and parallel computing.
- How big is your graph? - Graph sizing with base R.
- LaTeX - A reference to the LaTeX typesetting language, useful in combination with knitr and R Markdown.
- leaflet - Interactive maps in R with leaflet, by Kejia Shi.
- Machine Learning Modelling - A tabular guide to machine learning algorithms in R, by Arnaud Amsellem.
- mlr - The mlr package offers a unified interface to R’s machine learning capabilities.
- Mosaic - The mosaic package is for teaching mathematics, statistics, computation and modeling.
- nardl - The nardl package estimates the nonlinear cointegrating autoregressive distributed lag model.
- xplain - Explain statistical functions with XML files and xplain.
- Parallel Computation - Parallel computing in R with the parallel, foreach, and future packages. By Ardalan Mirshani.
- quanteda - Quantitative Analysis of Textual Data in R with the quanteda package by Stefan Müller and Kenneth Benoit.
- randomizr - Automate random assignment and sampling with randomizr. By Alex Coppock.
- Regular Expressions - Basics of regular expressions and pattern matching in R by Ian Kopacka.
- Simple Features (sf) - Tools for working with spatial vector data: points, lines, polygons, etc. Cheatsheet by Ryan Garnett.
- sjmisc - dplyr friendly Data and Variable Transformation, by Daniel Lüdecke.
- survminer - Elegant survival plots, by Przemyslaw Biecek.
- Syntax Comparison - Three code styles compared: $, formula, and tidyverse. By Amelia McNamara.
- Teach R - Concise advice on how to teach R or anything else. By Adi Sarid.
Shiny Applications Development Materials
- Shiny - Web Application Framework for R.
- Shiny Tutorials - Shiny Tutorials.
- shinyAce - Ace editor bindings to enable a rich text editing environment within Shiny.
- shinyBS - Twitter Bootstrap Components for Shiny.
- shinydashboard - Create Dashboards with 'Shiny'.
- shinyjs - Easily Improve the User Experience of Your Shiny Apps in Seconds.
- Shiny Developer Conference - Shiny Developer Conference.
- ShinyTrials - Shiny applications with shiny & shinydashboard.
- shiny.io - Share your Shiny Applications Online.
- Shiny Applications Examples - Examples of interactive web apps using shiny.
- shiny server - Host Shiny applications over the web.
- Mastering Shiny - Mastering Shiny: a book.
- Awesome Shiny Extensions - Awesome Shiny Extensions.
Bioinformatics Tools Implemented in R
- CMSclassifier - An R package and an example data set are provided to run the CMSclassifier.
- CMScaller - an R package for consensus molecular subtyping of colorectal cancer pre-clinical models.
- genefu - R package providing various functions relevant for gene expression analysis with emphasis on breast and ovarian cancers.
- CancerSubtypes - Cancer subtypes identification, validation and visualization based on multiple genomic data sets.
- consensusOV - Gene expression-based subtype classification for high-grade serous ovarian cancer.
- ConsensusClusterPlus - ConsensusClusterPlus: a class discovery tool with confidence assessments and item tracking.
- WGCNA - WGCNA: an R package for weighted correlation network analysis.
- ImmuLncRNA - The R package 'ImmulancRNA' contains 3 method which can caculate the tumor purity, partial correlation coefficient and identify the lncRNA-pathway pairs.
- randomForestSRC - R-package for random forest analysis of regression, classification, survival and more.
- plsRcox - Partial Least Squares Regression for Cox Models and Related Techniques.
- superpc - Supervised Principal Components.
- CoxBoost - Cox models by likelihood based boosting for a single survival endpoint or competing risks.
- survivalsvm - Survival Support Vector Analysis.
- GSVA - Gene Set Variation Analysis for microarray and RNA-seq data.
- isomiRseeker - Detect miRNA isoforms from small RNA-seq data.
- TCGAbiolinks - TCGAbiolinks - An R/Bioconductor package for integrative analysis with TCGA data.
- clusterProfiler - clusterProfiler: an R package for comparing biological themes among gene clusters.
- glmnet - glmnet: Lasso and Elastic-Net Regularized Generalized Linear Models.
- OmicCircos - an R application and package for generating high-quality circular plots for omics data.
- maftools - maftools - An R package to summarize, analyze and visualize MAF files.
- RTN - RTN: Reconstruction of Transcriptional regulatory Networks and analysis of regulons.
- RedeR - Interactive visualization and manipulation of nested networks.
- GCclassifier - GCclassifier: an R package for the prediction of molecular subtypes of gastric cancer.
- immunedeconv - an R package for unified access to computational methods for estimating immune cell fractions from bulk RNA sequencing data.
- NbClust - NbClust: An R Package for Determining the Relevant Number of Clusters in a Data Set.
- BLCAsubtyping - Transcriptomic tools to classify bladder tumours according to six published molecular classifications.
- consensusMIBC - This package implements a nearest-centroid transcriptomic classifier, that assigns class labels according to the consensus molecular classification of Muscle-Invasive Bladder Cancer (Manuscript submitted). The consensus classification identifies 6 molecular classes : Luminal Papillary (LumP), Luminal Non Specified (LumNS), Luminal Unstable (LumU), Stroma-rich, Basal/Squamous (Ba/Sq), Neuroendocrine-like (NE-like).
- classifyNMIBC - This package implements a Pearson nearest-centroid classifier that assigns class labels to single samples according to the four transcriptomic UROMOL2021 classes of non-muscle-invasive bladder cancer (NMIBC): class 1, class 2a, class 2b and class 3.
- oncoPredict - Predict Response from Expression Data and Identify Cell line/Clinical Targets and Trends.
- Mime - Mime: A flexible machine-learning framework to construct and visualize models for clinical characteristics prediction and feature selection.
Singl-cell RNA-seq & ATAC in R
- Signac - Signac is a comprehensive R package for the analysis of single-cell chromatin data. Signac includes functions for quality control, normalization, dimension reduction, clustering, differential activity, and more.
- Seurat - Seurat is an R toolkit for single cell genomics, developed and maintained by the Satija Lab at NYGC.
- ccRemover - Removes the Cell-Cycle Effect from Single-Cell RNA-Sequencing Data.
- cellTree - Cell population analysis and visualization from single cell RNA-seq data using a Latent Dirichlet Allocation model.
- SingleR - Reference-Based Single-Cell RNA-Seq Annotation.
- CellChat - CellChat is an R package designed for inference, analysis, and visualization of cell-cell communication from single-cell data. CellChat aims to enable users to identify and interpret cell-cell communication within an easily interpretable framework, with the emphasis of clear, attractive, and interpretable visualizations.
- Harmony - Fast, sensitive and accurate integration of single-cell data with Harmony.