Extensions to the R statistical programming language
R logo
R packages are extensions to the R statistical programming language. R packages contain code, data, and documentation in a standardised collection format that can be installed by users of R, typically via a centralised software repository such as CRAN (the Comprehensive R Archive Network). The large number of packages available for R, and the ease of installing and using them, has been cited as a major factor driving the widespread adoption of the language in data science.
Compared to libraries in other programming languages, R packages must conform to a relatively strict specification. The Writing R Extensions manual specifies a standard directory structure for R source code, data, documentation, and package metadata, which enables them to be installed and loaded using R's in-built package management tools. Packages distributed on CRAN must meet additional standards. According to John Chambers, whilst these requirements "impose considerable demands" on package developers, they improve the usability and long-term stability of packages for end users.
Repositories
Comprehensive R Archive Network (CRAN)
The Comprehensive R Archive Network (CRAN) homepage
The Comprehensive R Archive Network (CRAN) is R's central software repository, supported by the R Foundation. It contains an archive of the latest and previous versions of the R distribution, documentation, and contributed R packages. It includes both source packages and pre-compiledbinaries for Windows and macOS. As of November 2020[update], more than 16,000 packages are available. CRAN was created by Kurt Hornik and Friedrich Leisch in 1997, with the name paralleling other early packing systems such as TeX's CTAN (released 1992) and Perl's CPAN (released 1995). As of 2021[update], it is still maintained by Hornik and a team of volunteers. The master site is located at the Vienna University of Economics and Business and is mirrored on servers around the world.
Homepage for R CRAN Task Views
The "Task Views" page (subject list) on the CRAN website lists a wide range of tasks (in fields such as finance, genetics, high performance computing, machine learning, medical imaging, meta-analysis, social sciences and spatial statistics) for which R packages are available. Another way to browse CRAN packages is provided by Metacran, which also maintains lists of featured, most downloaded, trending or most depended upon packages.
The number of CRAN packages has grown exponentially for many years. In 2018, an average of 21 submissions of new or updated packages were made every day; this increased to 20–25 new package submissions each day in 2026. Since each submission is manually reviewed by a small team of CRAN maintainers, there is a concern that this system is not sustainable in the long term. The growth of CRAN has exposed limitations of its dependency management infrastructure, particularly the fact that it assumes that dependencies always refer to the latest version of a package, meaning that new releases of CRAN packages must always be backwards compatible, and that CRAN packages cannot have dependencies that are not on CRAN. It has also led to concerns about declining quality of packages.
MRAN and Posit Package Manager
Homepage for the Microsoft R Application Network (MRAN)
The Microsoft R Application Network (MRAN) is a mirror of CRAN maintained by Microsoft which is based on the company's downstream distribution of R, Microsoft R Open (formerly Revolution R Open). It also includes an archive of daily CRAN snapshots, branded as the "CRAN Time Machine", which enables users of MRAN to bypass the dependency versioning limitations of CRAN by installing a fixed set of R package versions via the package checkpoint. In January 2023 Microsoft announced that MRAN was being retired and the associated websites and repositories became unavailable in July 2023.
Homepage for the Posit Package Manager
The Posit Package Manager (formerly RStudio Package Manager) is a similar tool produced by the developers of RStudio which, in addition to CRAN snapshots, includes an archive of R packages from Bioconductor and Python packages from the Python Package Index. It also distributes pre-compiled binary packages for Linux (only Windows and macOS binaries are included on CRAN).
R-Forge, is a central platform for the collaborative development of R packages, R-related software, and projects. R-Forge also hosts many unpublished beta packages, and development versions of CRAN packages.
Base and recommended packages
R is distributed with fifteen "base packages": base, compiler, datasets, grDevices, graphics, grid, methods, parallel, splines, stats, stats4, tcltk, tools, translations, and utils.
In addition, there are fifteen "recommended packages" from CRAN which are included with binary distributions of R: KernSmooth, MASS, Matrix, boot, class, cluster, codetools, foreign, lattice, mgcv, nlme, nnet, rpart, spatial, and survival.
Other packages
A group of packages called the tidyverse, which can be considered a "dialect of the R language", is increasingly popular in the R ecosystem. As of 1 August 2025, Metacran listed 6 of the 8 core packages of the tidyverse in the list of most downloaded R packages. The group of packages strives to provide a cohesive collection of functions to deal with common data science tasks, including data import, cleaning, transformation and visualisation (notably with the ggplot2 package).
The R Infrastructure packages support coding and the development of R packages and as of 1 August 2025, Metacran lists 8 of these packages among the 25 most downloaded packages.
Package maintainership
Software engineering studies of the CRAN repository show that package maintainers carry the primary responsibility for long-term code stability, bug resolution, and cross-platform compilation. While the majority of CRAN contributors maintain a single package, a small group of prolific developers maintain dozens of active packages across diverse statistical domains, high-performance computing, and systems infrastructure.
↑Hornik, Kurt (2020-02-20). "Frequently Asked Questions on R". The Comprehensive R Archive Network. 7.29: What is the difference between package and library?. Archived from the original on 2011-07-09. Retrieved 2 November 2020.{{cite web}}: CS1 maint: location (link)
↑Wickham, Hadley; Bryan, Jennifer. "Introduction". R Packages (2nded.). Archived from the original on 2022-06-29. Retrieved 2020-11-02.
12CRAN Repository Maintainers. "CRAN Repository Policy". The Comprehensive R Archive Network. R Project. Archived from the original on 11 November 2020. Retrieved 20 November 2020.
12Hornik, Kurt (2020-02-20). "Frequently Asked Questions on R". The Comprehensive R Archive Network. 2.1: What is CRAN?: R Project. Archived from the original on 2011-07-09. Retrieved 20 November 2020.{{cite web}}: CS1 maint: location (link)
↑CRAN Repository Maintainers. "CRAN - Contributed Packages". The Comprehensive R Archive Network. CRAN. Archived from the original on 24 November 2020. Retrieved 20 November 2020.
12Hornik, Kurt (2020-02-20). "Frequently Asked Questions on R". The Comprehensive R Archive Network. 5.1: Which add-on packages exist for R?. Archived from the original on 2011-07-09. Retrieved 2 November 2020.{{cite web}}: CS1 maint: location (link)
↑Claes, M.; Mens, T.; Grosjean, P. (2014). "On the maintainability of CRAN packages". 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering. pp.308–312. doi:10.1109/CSMR-WCRE.2014.6747183. ISBN978-1-4799-3752-3.
↑Decan, Alexandre; Mens, Tom; Grosjean, Philippe (2019). "An empirical comparison of dependency network evolution in seven software packaging ecosystems". Empirical Software Engineering. 24 (1): 381–416. arXiv:1710.04936. doi:10.1007/s10664-017-9589-y.