Skip to contents

Trawl a local CRAN archive and extract statistics from all packages


  archive = TRUE,
  prev_results = NULL,
  results_file = NULL,
  chunk_size = 1000L,
  num_cores = 1L,
  save_full = FALSE,
  save_ex_calls = FALSE,
  results_path = tempdir()



Path to local archive of R packages, either as source directories, or '.tar.gz' files such as in a CRAN mirror.


If TRUE, extract statistics for all packages in the /Archive sub-directory, otherwise only statistics for main directory (that is, current packages only).


Result of previous call to this function, if available. Submitting previous results will ensure that only newer packages not present in previous result will be analysed, with new results simply appended to previous results. This parameter can also specify a file to be read with readRDS().


Can be used to specify the name or full path of a .Rds file to which results should be saved once they have been generated. The '.Rds' extension will be automatically appended, and any other extensions will be ignored.


Divide large archive trawl into chunks of this size, and save intermediate results to local files. These intermediate files can be combined to generate a single prev_results file, to enable jobs to be stopped and re-started without having to recalculate all results. These files will be named pkgstats-results-N.Rds, where "N" incrementally numbers each file.


Number of machine cores to use in parallel, defaulting to single-core processing.


If TRUE, full pkgstats results are saved for each package to files in results_path.


If TRUE, the results of the external_calls component are saved for each package to files in results_path (only if save_full = FALSE).


Path to save intermediate files generated by the chunk_size parameter described above.


A data.frame object with one row for each package containing summary statistics generated from the pkgstats_summary function.

See also


# Create fake archive directory with single tarball:
f <- system.file ("extdata", "pkgstats_9.9.tar.gz", package = "pkgstats")
tarball <- basename (f)

archive_path <- file.path (tempdir (), "archive")
if (!dir.exists (archive_path)) {
    dir.create (archive_path)
path <- file.path (archive_path, tarball)
file.copy (f, path)
#> [1] TRUE
tarball_path <- file.path (archive_path, "tarballs")
dir.create (tarball_path, recursive = TRUE)
file.copy (path, file.path (tarball_path, tarball))
#> [1] TRUE
if (FALSE) {
out <- pkgstats_from_archive (tarball_path)