R package dependencies
Erich Neuwirth
January 13, 2017
CRAN at the moment (2017-01-13 01:09:18) has 9884 R packages.
Quite a few of these packages are required by other packages (by Depends
, Imports
, or LinkingTo
)
Required by | Packages |
---|---|
0 | 7549 |
1-9 | 1805 |
10-99 | 393 |
100-999 | 111 |
1000-1999 | 18 |
2000+ | 8 |
So there are 8 packages required by 2000 or more other packages.
The 30 packages which are required by the highest numbers of other packages are:
These top 30 packages were written by the following authors:
pkg | Required by | Authors |
---|---|---|
Rcpp | 3451 | Dirk Eddelbuettel, Romain Francois, JJ Allaire, Kevin Ushey, Qiang Kou, Nathan Russell, Douglas Bates and John Chambers |
lattice | 3411 | Deepayan Sarkar |
MASS | 2873 | Brian Ripley, Bill Venables, Douglas M. Bates, Kurt Hornik (partial port ca 1998), Albrecht Gebhardt (partial port ca 1998), David Firth |
Matrix | 2378 | Douglas Bates and Martin Maechler |
magrittr | 2239 | Stefan Milton Bache and Hadley Wickham |
stringi | 2061 | Marek Gagolewski (stringi source code); IBM and other contributors (ICU4C 55.1 source code); Unicode, Inc. (Unicode Character Database) |
digest | 2023 | Dirk Eddelbuettel with contributions by Antoine Lucas, Jarek Tuszynski, Henrik Bengtsson, Simon Urbanek, Mario Frasca, Bryan Lewis, Murray Stokely, Hannes Muehleisen, Duncan Murdoch, Jim Hester, Wush Wu, Qiang Kou, Thierry Onkelinx, Michel Lang and Viliam Simko. |
stringr | 2007 | Hadley Wickham, RStudio |
plyr | 1809 | Hadley Wickham |
assertthat | 1744 | ‘Hadley Wickham’ |
lazyeval | 1713 | Hadley Wickham, RStudio |
tibble | 1701 | Hadley Wickham, Romain Francois, Kirill Müller, RStudio |
RColorBrewer | 1570 | Erich Neuwirth |
colorspace | 1550 | Ross Ihaka, Paul Murrell, Kurt Hornik, Jason C. Fisher, Reto Stauffer, Achim Zeileis |
reshape2 | 1489 | Hadley Wickham |
dichromat | 1446 | Thomas Lumley, Scott Waichler |
labeling | 1445 | Justin Talbot |
munsell | 1444 | Charlotte Wickham |
scales | 1443 | Hadley Wickham, RStudio |
gtable | 1421 | Hadley Wickham |
ggplot2 | 1407 | Hadley Wickham, Winston Chang, RStudio |
R6 | 1236 | Winston Chang |
mime | 1172 | Jeffrey Horner, Yihui Xie |
nlme | 1066 | José Pinheiro (S version), Douglas Bates (up to 2007), Saikat DebRoy (up to 2002), Deepayan Sarkar (up to 2005), EISPACK authors (src/rs.f), Siem Heisterkamp (Author fixed sigma), Bert Van Willigen (Programmer fixed sigma), R-core |
jsonlite | 1017 | Jeroen Ooms, Duncan Temple Lang, Lloyd Hilaiel |
codetools | 1002 | Luke Tierney |
survival | 905 | Terry M Therneau, Thomas Lumley (original S->R port and maintainer until 2009) |
cluster | 895 | Martin Maechler, Peter Rousseeuw (Fortran original), Anja Struyf (S original), Mia Hubert (S original), Kurt Hornik (port to R; maintenance(1999-2000)), Matthias Studer, Pierre Roudier, Juan Gonzalez |
xtable | 876 | David B. Dahl |
iterators | 839 | Rich Calaway, Revolution Analytics, Steve Weston |
When I produced the first version of this report in December 2015, I simply used pkgDepends
to (recursively) find the the complete dependency graph of the packages on CRAN. This time, doing this for all almost 10,000 packages took too long,
so I used available.packages
do get the one-step list of dependencies, build the (alsmost ) 10,000 x 10,000 adjacency matrix, and then used the SparseM
packages to compute the matrix powers to get the complete dependency graph. Computing matrix powers without SparseM also proved to be infeasibly time consuming.
// add bootstrap table styles to pandoc tables function bootstrapStylePandocTables() { $('tr.header').parent('thead').parent('table').addClass('table table-condensed'); } $(document).ready(function () { bootstrapStylePandocTables(); });