Site icon R-bloggers

R package dependencies (2017)

[This article was first published on R – Software tips, tricks, and hacks, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
< !-- tabsets --> < !-- code folding -->

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. < !-- dynamically load mathjax for compatibility with self-contained -->
To leave a comment for the author, please follow the link and comment on their blog: R – Software tips, tricks, and hacks.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.