Difference between r-base and r-recommended packages

I'd like to answer from a slightly different perspective, and with functions rather than links. If Priority is "base", then the package is already installed and loaded, so all of its functions are available upon opening R. If Priority is "recommended", then the package was installed with base R, but not loaded. Before using the commands from this package, the user will have to load it with the library command, e.g. library(boot).

As to the links, installed.packages() with a filter for Priority should list all the packages that are installed and loaded (base) or just installed (recommended), so you don't really need any links.

x <- installed.packages()
x[ !is.na(x[ ,"Priority"]), c("Package", "Priority") ]

For all other packages, see available.packages(). See this link for details.


The difference actually comes from R Core and the way the R code is organised, for example in the upstream SVN repository.

In src/library/, you have all 'base' packages:

  • base
  • compiler
  • datasets
  • graphics
  • grDevices
  • grid
  • methods
  • parallel
  • splines
  • stats
  • stats4
  • tcltk
  • tools
  • translations
  • utils.

And none of these are on CRAN -- they only exist as part of 'base R'.

And you have a directory src/library/Recommended which by default is empty, but can be filled by using a helper script (tools/rsync-recommended) to get the list of Recommended packages off CRAN from a special (versioned) directory. For R version 3.3.3, it is CRAN/src/contrib/3.3.3/Recommended/ (with the CRAN part being your default mirror). It contains

  • KernSmooth
  • MASS
  • Matrix
  • boot
  • class
  • cluster
  • codetools
  • foreign
  • lattice
  • mgcv
  • nlme
  • nnet
  • rpart
  • spatial
  • survival

Edit 2016-09-06: Added utils to first set.