SkillAgentSearch skills...

Fastverse

An Extensible Suite of High-Performance and Low-Dependency Packages for Statistical Computing and Data Manipulation in R

Install / Use

/learn @fastverse/Fastverse

README

fastverse <img src='logo.png' width="350px" align="right" />

<!-- badges: start -->

R-CMD-check fastverse status badge CRAN status cran checks downloads per month downloads Conda Version Conda Downloads dependencies

<!-- [![Codecov test coverage](https://codecov.io/gh/fastverse/fastverse/branch/master/graph/badge.svg)](https://codecov.io/gh/fastverse/fastverse?branch=master) [![minimal R version](https://img.shields.io/badge/R%3E%3D-2.10-6666ff.svg)](https://cran.r-project.org/) --> <!-- badges: end -->

The fastverse is a suite of complementary high-performance packages for statistical computing and data manipulation in R. Developed independently by various people, fastverse packages jointly contribute to the objectives of:

  • Speeding up R through heavy use of compiled (C/C++) code
  • Enabling more complex statistical and data manipulation operations in R
  • Reducing the number of dependencies required for advanced computing in R

The fastverse package is a meta-package providing utilities for easy installation, loading and management of these packages. It is an extensible framework that allows users to create a 'verse' of packages suiting their general needs - see the vignette for a concise overview of the package.

<!-- *fastverse* packages are jointly attached with `library(fastverse)`, and several functions starting with `fastverse_` help manage dependencies, detect namespace conflicts, extend the *fastverse* and update packages. The [**vignette**](https://fastverse.github.io/fastverse/articles/fastverse_intro.html) provides a concise overview of the package. -->

Core Packages

The fastverse installs with 4 core packages (5 dependencies in total) which provide broad C/C++ based statistical and data manipulation functionality and have carefully managed APIs.

<!-- These packages are installed and attached along with the `fastverse` package. -->
  • data.table: Enhanced data frame class with concise data manipulation framework offering powerful aggregation, update, reshaping, (rolling) joins, rolling statistics, set operations on tables, fast csv read/write, and various utilities such as data transposition/stringsplit-transpose.

  • collapse: Fast grouped and weighted statistical computations, time series and panel data transformations, list-processing, data manipulation functions (incl. fast joins and pivots), summary statistics, and various utilities for efficient programming. Class-agnostic framework designed to work with vectors, matrices, data frames, lists and related classes including xts, data.table, tibble, and sf. <!-- *tsibble*, *tibbletime* -->

  • kit: Parallel (row-wise) statistical functions, vectorized and nested switches, and some utilities such as efficient partial sorting.

  • magrittr: Efficient pipe operators and aliases for enhanced R programming and code un-nesting.

Installation

<!-- Currently, there are 2 different versions of the *fastverse* on CRAN and GitHub/R-universe. The GitHub/R-universe version is recommended if you want to have *matrixStats* consistently preserve attributes of your matrices: it modifies functions in the *matrixStats* namespace making them preserve attributes consistently (and by default) whenever the *fastverse* is attached. This version was rejected by CRAN because it requires a call to `unlockBinding`. The CRAN version takes *matrixStats* as it is, which means most functions do not preserve attributes such as dimension names in computations. -->
# Install the CRAN version
install.packages("fastverse")

# Install (Windows/Mac binaries) from R-universe
install.packages("fastverse", repos = "https://fastverse.r-universe.dev")

# Install from GitHub (requires compilation)
remotes::install_github("fastverse/fastverse")
<!-- *Note* that the GitHub/r-universe version is not a development version, development takes place in the 'development' branch. *matrixStats* is slowly evolving towards greater consistency, but it might take more than half a year until dimension names are handled consistently by default - due to the large number of reverse dependencies. Until then CRAN and GitHub/R-universe versions of the *fastverse* are released together. -->

Extending the fastverse

Users can, via the fastverse_extend() function, freely add packages. Setting permanent = TRUE adds them to the core fastverse. Another option is placing a .fastverse config file with packages in a project directory. Separate verses can be created with fastverse_child(). See the vignette for details.

<!-- <details> <summary><b><a style="cursor: pointer;">Click here to expand </a></b> </summary> <PRE class="fansi fansi-message"><code class="r"># Loads and attaches the core fastverse packages library(fastverse)</code> <CODE># -- <span style="font-weight: bold;">Attaching packages</span><span> --------------------------------------- </span><span style="color: #0087FF;">fastverse</span><span> 0.1.5 -- </span></CODE><CODE># <span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">data.table </span><span> 1.14.0 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">collapse </span><span> 1.6.5 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">magrittr </span><span> 2.0.1 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">matrixStats</span><span> 0.59.0 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">kit </span><span> 0.0.7 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">fst </span><span> 0.9.4 </span></CODE> <code class="r"># Permanently extends the core fastverse by certain packages fastverse_extend(xts, roll, dygraphs, permanent = TRUE)</code> <CODE># -- <span style="font-weight: bold;">Attaching extension packages</span><span> ----------------------------- </span><span style="color: #0087FF;">fastverse</span><span> 0.1.5 -- </span></CODE><CODE># <span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">xts </span><span> 0.12.1 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">dygraphs</span><span> 1.1.1.6 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">roll </span><span> 1.1.6 </span></CODE><CODE># -- <span style="font-weight: bold;">Conflicts</span><span> ------------------------------------------ fastverse_conflicts() -- # </span><span style="color: #BB0000;">x</span><span> </span><span style="color: #0000BB;">xts</span><span>::</span><span style="color: #00BB00;">first()</span><span> masks </span><span style="color: #0000BB;">data.table</span><span>::first() # </span><span style="color: #BB0000;">x</span><span> </span><span style="color: #0000BB;">xts</span><span>::</span><span style="color: #00BB00;">last()</span><span> masks </span><span style="color: #0000BB;">data.table</span><span>::last() </span></CODE> <code class="r"># If the fastverse is now loaded in a new session, these packages are added fastverse_detach(session = TRUE) library(fastverse) </code><CODE># -- <span style="font-weight: bold;">Attaching packages</span><span> --------------------------------------- </span><span style="color: #0087FF;">fastverse</span><span> 0.1.5 -- </span></CODE><CODE># <span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">data.table </span><span> 1.14.0 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">fst </span><span> 0.9.4 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">magrittr </span><span> 2.0.1 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">xts </span><span> 0.12.1 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">kit </span><span> 0.0.7 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">roll </span><span> 1.1.6 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">collapse </span><span> 1.6.5 </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">dygraphs </span><span> 1.1.1.6 # </span><span style="color: #0087FF;">v</span><span> </span><span style="color: #FF0087;">matrixStats</span><span> 0.59.0 </span></CODE><CODE># -- <span style="font-weight: bold;">Conflicts</span><span> ------------------------------------------ fastverse_conflicts() -- # </span><span style="color: #BB0000;">x</span><span> </span
View on GitHub
GitHub Stars313
CategoryData
Updated6h ago
Forks19

Languages

R

Security Score

100/100

Audited on Mar 29, 2026

No findings