| fastverse {fastverse} | R Documentation |
The fastverse is an extensible suite of R packages, developed independently by various people, that jointly contribute to the objectives of:
Speeding up R through heavy use of compiled code (C, C++, Fortran)
Enabling more complex statistical and data manipulation operations in R
Reducing the number of dependencies required for advanced computing in R
Inspired by the tidyverse package, the fastverse package is a flexible package loader and manager
that allows users to put together their own 'verses' of packages and load them with library(fastverse).
The fastverse installs 6 core packages (data.table, collapse, matrixStats, kit, magrittr and fst) that
provide native C/C++ code of proven quality, work well together, and enable complex statistical computing and data manipulation - with only Rcpp as an additional dependency.
The package also harmonizes functionality among some of these core packages (see below).
The fastverse further allows users to freely (and permanently) extend or reduce the number of packages in the fastverse.
A selection of suggested high-performing packages for various topics is provided in fastverse_extend (and with more details in the README).
Other functions help to determine joint dependencies, sort out namespace conflicts among attached packages, and update packages.
Functions to extend or reduce the number of packages in the fastverse - either for the session or permanently - and to restore defaults.
fastverse_extend()
fastverse_detach()
fastverse_reset()
Function to display conflicts for fastverse packages (or any other attached packages)
Function to update fastverse packages (and dependencies) and install (missing) packages
fastverse_update()
fastverse_install()
Utilities to retrieve the names of fastverse packages (and dependencies), their update status and produce a situation report.
fastverse_packages()
fastverse_deps()
fastverse_sitrep()
Function to create a new extensible verse of packages like the fastverse
options(fastverse.quiet = TRUE) will disable all automatic messages (including conflict reporting) when calling library(fastvsers), fastverse_extend, fastverse_update(install = TRUE) and fastverse_install.
options(fastverse.styling = FALSE) will disable all styling applied to text printed to the console.
options(fastverse.extend = c(...)) can be set before calling library(fastvsers) to extend the fastverse with some packages for the session. The same can be done with the
fastverse_extend function after library(fastvsers), which will also populate options("fastverse.extend").
options(fastverse.install = TRUE) can be set before library(fastverse) to install any missing packages beforehand. See also fastverse_install.
There are 2 internal clashes between collapse::funique and kit::funique, and between matrixStats::count and kit::count.
The collapse and matrixStats versions take precedence over the kit versions. For a comparison of functionality see the details section of fastverse_conflicts.
Quite a number of functions in the matrixStats package do not (by default) preserve the attributes of objects passed to them, resulting in inconsistent behavior of different functions.
The GitHub version of the fastverse alters most of the functions where this is the case, listed in a global variable .matrixStats_replaced, bestowing them with
capabilities to preserve matrix dimension names and other attributes (for functions returning a matrix). This is done using very efficient R and C code, so that performance does not suffer.
When the fastverse is attached, these altered function are replaced in the matrixStats namespace. Since CRAN does not allow namespace modifications in other packages,
this feature is only available in the GitHub version, installable using remotes::install_github("fastverse/fastverse"). Development of CRAN and GitHub version will
continue synchronous until matrixStats has evolved so that consistent attribute handling (useNames = TRUE) becomes the default.