R: Extend the fastverse

fastverse_extend {fastverse} | R Documentation

## Extend the fastverse

### Description

Loads additional packages as part of the fastverse. By default only for the session, but extensions can be saved up to reinstallation/updating of the fastverse package.

### Usage

    fastverse_extend(
      ...,
      topics = NULL,
      install = FALSE,
      permanent = FALSE,
      check.conflicts = !isTRUE(getOption("fastverse.quiet"))
    )

### Arguments

`...` | comma-separated package names, quoted or unquoted, or vectors of package names.
`topics` | integer or character. Short-keys to attach groups of related and packages suggested as extensions to the fastverse (not case sensitive if character). Unavailable packages are skipped unless `install = TRUE`. `"TS"`: Time Series. Attaches xts, zoo and roll. `"DT"`: Dates and Times. Attaches lubridate, anytime, fasttime, nanotime, clock, and timechange. `"ST"`: Strings. Attaches stringr, stringi, snakecase, stringfish and stringdist. `"SC"`: Statistics and Computing. Attaches Rfast, Rfast2, parallelDist, coop, MatrixExtra, rsparse and rrapply. `"SP"`: Spatial. Attaches sf, stars and terra. `"VI"`: Visualization. Attaches dygraphs, ggplot2, scales, lattice and grid. `"TV"`: Tidyverse-Like. Attaches tidytable, tidyfast, tidyfst, tidyft and maditr. `"IO"`: Input-Output. Attaches qs and arrow.
`install` | logical. Install packages not available?
`permanent` | logical. Should packages be saved and included when `library(fastverse)` is called next time? Implemented via a config file saved to the package directory. The file will be removed if the fastverse is reinstalled, and can be removed without reinstallation using `fastverse_reset`. Packages can be removed from the config file using `fastverse_detach(..., permanent = TRUE)`.
`check.conflicts` | logical. Should conflicts between extension packages and attached packages be checked?

### Details

The fastverse can be extended using a free choice of packages, packages listed under `topics`, or a combination of both. If `install = FALSE`, only packages among the `topics` groups that are available are considered, others are disregarded.

When the fastverse is extended calling `fastverse_extend(...)`, the packages that are not attached are attached, but conflicts are checked for all specified packages. If `permanent = FALSE`, an `options("fastverse.extend")` is set which stores these extension packages, regardless of whether they were already attached or not. When calling `fastverse_packages`, `fastverse_deps`, `fastverse_conflicts`, `fastverse_update`, `fastverse_sitrep` or `fastverse_detach`, these packages are included as part of the fastverse. This is also the case if `permanent = TRUE`, with the only difference that instead of populating the option, a file is saved to the package directory such that the packages are also loaded (as part of the core fastverse) when calling `library(fastverse)` in the next session. To extend the fastverse for the current session when it is not yet loaded, users can also set `options(fastverse.extend = c(...))`, where `c(...)` is a character vector of package names, before calling `library(fastverse)`.

### Value

`fastverse_extend` returns `NULL` invisibly.

### See Also

`fastverse_detach`, `fastverse`

### Examples

    ex <- getOption("fastverse.extend")
    fastverse_extend(xts, stringi)
    fastverse_extend(fasttime, topics = "VI")

    # Undoing this again
    fastverse_detach(setdiff(getOption("fastverse.extend"), ex), session = TRUE)
    rm(ex)

[Package fastverse version 0.2.3 Index]