{"id":13857300,"url":"https://github.com/fastverse/fastverse","last_synced_at":"2025-12-12T00:43:32.265Z","repository":{"id":39579965,"uuid":"346787894","full_name":"fastverse/fastverse","owner":"fastverse","description":"An Extensible Suite of High-Performance and Low-Dependency Packages for Statistical Computing and Data Manipulation in R","archived":false,"fork":false,"pushed_at":"2024-05-01T23:10:05.000Z","size":8949,"stargazers_count":213,"open_issues_count":1,"forks_count":10,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-05-02T02:54:03.884Z","etag":null,"topics":["c","cpp","data-aggregation","data-manipulation","data-science","data-transformation","high-performance","low-dependency","panel-data","r","rstats","statistical-computing","time-series","weights"],"latest_commit_sha":null,"homepage":"https://fastverse.github.io/fastverse/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-11T17:44:42.000Z","updated_at":"2024-05-19T23:37:15.939Z","dependencies_parsed_at":"2024-02-09T01:46:42.956Z","dependency_job_id":"d7aad177-c447-4f70-971b-657166f70edb","html_url":"https://github.com/fastverse/fastverse","commit_stats":{"total_commits":193,"total_committers":2,"mean_commits":96.5,"dds":0.005181347150259086,"last_synced_commit":"e17976e7e210ee24306d470f90e38cb1958f6922"},"previous_names":["sebkrantz/fastverse"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastverse%2Ffastverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastverse%2Ffastverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastverse%2Ffastverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastverse%2Ffastverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastverse","download_url":"https://codeload.github.com/fastverse/fastverse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246730308,"owners_count":20824399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","data-aggregation","data-manipulation","data-science","data-transformation","high-performance","low-dependency","panel-data","r","rstats","statistical-computing","time-series","weights"],"created_at":"2024-08-05T03:01:32.819Z","updated_at":"2025-12-12T00:43:32.228Z","avatar_url":"https://github.com/fastverse.png","language":"R","readme":"# fastverse \u003cimg src='logo.png' width=\"350px\" align=\"right\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/fastverse/fastverse/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/fastverse/fastverse/actions/workflows/R-CMD-check.yaml)\n[![fastverse status badge](https://fastverse.r-universe.dev/badges/fastverse)](https://fastverse.r-universe.dev)\n[![CRAN status](https://www.r-pkg.org/badges/version/fastverse)](https://cran.r-project.org/package=fastverse) \n[![cran checks](https://badges.cranchecks.info/worst/fastverse.svg)](https://cran.r-project.org/web/checks/check_results_fastverse.html)\n![downloads per month](https://cranlogs.r-pkg.org/badges/fastverse?color=blue)\n![downloads](https://cranlogs.r-pkg.org/badges/grand-total/fastverse?color=blue)\n [![Conda Version](https://img.shields.io/conda/vn/conda-forge/r-fastverse.svg)](https://anaconda.org/conda-forge/r-fastverse)\n [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/r-fastverse.svg)](https://anaconda.org/conda-forge/r-fastverse)\n [![dependencies](https://tinyverse.netlify.app/badge/fastverse)](https://CRAN.R-project.org/package=fastverse)\n\u003c!--\n[![Codecov test coverage](https://codecov.io/gh/fastverse/fastverse/branch/master/graph/badge.svg)](https://codecov.io/gh/fastverse/fastverse?branch=master) \n[![minimal R version](https://img.shields.io/badge/R%3E%3D-2.10-6666ff.svg)](https://cran.r-project.org/) --\u003e\n\u003c!-- badges: end --\u003e\n\n\nThe *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:\n\n- Speeding up R through heavy use of compiled code (C/C++)\n- Enabling more complex statistical and data manipulation operations in R\n- Reducing the number of dependencies required for advanced computing in R\n\nThe `fastverse` package is a meta-package providing utilities for easy installation, loading and management \nof these packages. It is an extensible framework that allows users to create a 'verse' of packages suiting their general needs - see the [**vignette**](https://fastverse.github.io/fastverse/articles/fastverse_intro.html) for a concise overview of the package. \n\n\u003c!-- *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. --\u003e\n\n## Core Packages\n\nThe *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. \n \n\u003c!-- These packages are installed and attached along with the `fastverse` package. --\u003e\n \n- **[data.table](https://github.com/Rdatatable/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. \n\n- **[collapse](https://github.com/SebKrantz/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*.  \u003c!-- *tsibble*, *tibbletime* --\u003e\n\n- **[kit](https://github.com/2005m/kit)**: Parallel (row-wise) statistical functions, vectorized and nested switches, and some utilities such as efficient partial sorting. \n\n- **[magrittr](https://github.com/tidyverse/magrittr)**: Efficient pipe operators and aliases for enhanced R programming and code un-nesting.\n\n## Installation\n\n\u003c!-- \nCurrently, 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. \n--\u003e\n``` r\n# Install the CRAN version\ninstall.packages(\"fastverse\")\n\n# Install (Windows/Mac binaries) from R-universe\ninstall.packages(\"fastverse\", repos = \"https://fastverse.r-universe.dev\")\n\n# Install from GitHub (requires compilation)\nremotes::install_github(\"fastverse/fastverse\")\n```\n\u003c!--\n*Note* that the GitHub/r-universe version is not a development version, development takes place in the 'development' branch. \n\n*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. \n--\u003e\n\n## Extending the *fastverse*\n\nUsers 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**](https://fastverse.github.io/fastverse/articles/fastverse_intro.html) for details.  \n\n\u003c!--\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e\u003ca style=\"cursor: pointer;\"\u003eClick here to expand \u003c/a\u003e\u003c/b\u003e \u003c/summary\u003e\n\n\u003cPRE class=\"fansi fansi-message\"\u003e\u003ccode class=\"r\"\u003e# Loads and attaches the core fastverse packages\nlibrary(fastverse)\u003c/code\u003e\n\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eAttaching packages\u003c/span\u003e\u003cspan\u003e --------------------------------------- \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003efastverse\u003c/span\u003e\u003cspan\u003e 0.1.5 --\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# \u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edata.table \u003c/span\u003e\u003cspan\u003e 1.14.0     \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ecollapse   \u003c/span\u003e\u003cspan\u003e 1.6.5 \n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003emagrittr   \u003c/span\u003e\u003cspan\u003e 2.0.1      \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ematrixStats\u003c/span\u003e\u003cspan\u003e 0.59.0\n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ekit        \u003c/span\u003e\u003cspan\u003e 0.0.7      \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003efst        \u003c/span\u003e\u003cspan\u003e 0.9.4\n\u003c/span\u003e\u003c/CODE\u003e\n\u003ccode class=\"r\"\u003e# Permanently extends the core fastverse by certain packages\nfastverse_extend(xts, roll, dygraphs, permanent = TRUE)\u003c/code\u003e\n\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eAttaching extension packages\u003c/span\u003e\u003cspan\u003e ----------------------------- \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003efastverse\u003c/span\u003e\u003cspan\u003e 0.1.5 --\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# \u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003exts     \u003c/span\u003e\u003cspan\u003e 0.12.1      \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edygraphs\u003c/span\u003e\u003cspan\u003e 1.1.1.6\n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eroll    \u003c/span\u003e\u003cspan\u003e 1.1.6\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eConflicts\u003c/span\u003e\u003cspan\u003e ------------------------------------------ fastverse_conflicts() --\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003exts\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003efirst()\u003c/span\u003e\u003cspan\u003e masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::first()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003exts\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003elast()\u003c/span\u003e\u003cspan\u003e  masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::last()\n\u003c/span\u003e\u003c/CODE\u003e\n\u003ccode class=\"r\"\u003e# If the fastverse is now loaded in a new session, these packages are added \nfastverse_detach(session = TRUE)\nlibrary(fastverse)\n\u003c/code\u003e\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eAttaching packages\u003c/span\u003e\u003cspan\u003e --------------------------------------- \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003efastverse\u003c/span\u003e\u003cspan\u003e 0.1.5 --\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# \u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edata.table \u003c/span\u003e\u003cspan\u003e 1.14.0      \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003efst        \u003c/span\u003e\u003cspan\u003e 0.9.4  \n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003emagrittr   \u003c/span\u003e\u003cspan\u003e 2.0.1       \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003exts        \u003c/span\u003e\u003cspan\u003e 0.12.1 \n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ekit        \u003c/span\u003e\u003cspan\u003e 0.0.7       \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eroll       \u003c/span\u003e\u003cspan\u003e 1.1.6  \n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ecollapse   \u003c/span\u003e\u003cspan\u003e 1.6.5       \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edygraphs   \u003c/span\u003e\u003cspan\u003e 1.1.1.6\n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ematrixStats\u003c/span\u003e\u003cspan\u003e 0.59.0\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eConflicts\u003c/span\u003e\u003cspan\u003e ------------------------------------------ fastverse_conflicts() --\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003exts\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003efirst()\u003c/span\u003e\u003cspan\u003e           masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::first()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ecollapse\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eis.regular()\u003c/span\u003e\u003cspan\u003e masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ezoo\u003c/span\u003e\u003cspan\u003e::is.regular()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003exts\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003elast()\u003c/span\u003e\u003cspan\u003e            masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::last()\n\u003c/span\u003e\u003c/CODE\u003e\n\u003ccode class=\"r\"\u003e# We can also extend only the fastverse for the session, here adding Rfast2\n# and any installed suggested packages for date-time manipulation (see following README section)\nfastverse_extend(Rfast2, topics = \u0026quot;DT\u0026quot;) \u003c/code\u003e\n\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eAttaching extension packages\u003c/span\u003e\u003cspan\u003e ----------------------------- \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003efastverse\u003c/span\u003e\u003cspan\u003e 0.1.5 --\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# \u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eRfast2   \u003c/span\u003e\u003cspan\u003e 0.0.9      \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eclock    \u003c/span\u003e\u003cspan\u003e 0.3.1 \n# \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e 1.7.10     \u003c/span\u003e\u003cspan style=\"color: #0087FF;\"\u003ev\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003efasttime \u003c/span\u003e\u003cspan\u003e 1.0.2\n\u003c/span\u003e\u003c/CODE\u003e\u003cCODE\u003e# -- \u003cspan style=\"font-weight: bold;\"\u003eConflicts\u003c/span\u003e\u003cspan\u003e ------------------------------------------ fastverse_conflicts() --\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eas.difftime()\u003c/span\u003e\u003cspan\u003e masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ebase\u003c/span\u003e\u003cspan\u003e::as.difftime()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003eclock\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eas_date()\u003c/span\u003e\u003cspan\u003e         masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::as_date()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003edate()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ebase\u003c/span\u003e\u003cspan\u003e::date()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003ehour()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::hour()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eintersect()\u003c/span\u003e\u003cspan\u003e   masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ebase\u003c/span\u003e\u003cspan\u003e::intersect()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eis.Date()\u003c/span\u003e\u003cspan\u003e     masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ecollapse\u003c/span\u003e\u003cspan\u003e::is.Date()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eisoweek()\u003c/span\u003e\u003cspan\u003e     masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::isoweek()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003emday()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::mday()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eminute()\u003c/span\u003e\u003cspan\u003e      masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::minute()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003emonth()\u003c/span\u003e\u003cspan\u003e       masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::month()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003equarter()\u003c/span\u003e\u003cspan\u003e     masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::quarter()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003esecond()\u003c/span\u003e\u003cspan\u003e      masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::second()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003esetdiff()\u003c/span\u003e\u003cspan\u003e     masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ebase\u003c/span\u003e\u003cspan\u003e::setdiff()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eunion()\u003c/span\u003e\u003cspan\u003e       masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003ebase\u003c/span\u003e\u003cspan\u003e::union()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003ewday()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::wday()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eweek()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::week()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eyday()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::yday()\n# \u003c/span\u003e\u003cspan style=\"color: #BB0000;\"\u003ex\u003c/span\u003e\u003cspan\u003e \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003elubridate\u003c/span\u003e\u003cspan\u003e::\u003c/span\u003e\u003cspan style=\"color: #00BB00;\"\u003eyear()\u003c/span\u003e\u003cspan\u003e        masks \u003c/span\u003e\u003cspan style=\"color: #0000BB;\"\u003edata.table\u003c/span\u003e\u003cspan\u003e::year()\n\u003c/span\u003e\u003c/CODE\u003e\n\u003ccode class=\"r\"\u003e# This shows a situation report of the fastverse, including all dependencies\nfastverse_sitrep(recursive = TRUE)\u003c/code\u003e\n\u003cCODE\u003e# -- \u003cspan style=\"color: #0087FF;\"\u003efastverse\u003c/span\u003e\u003cspan\u003e 0.1.5: \u003c/span\u003e\u003cspan style=\"font-weight: bold;\"\u003eSituation Report\u003c/span\u003e\u003cspan\u003e -------------------------------- R 4.1.0 --\n#  * Global config file: TRUE\n#  * Project config file: FALSE\n# -- Core packages --------------------------------------------------------------- \n#  * \u003cspan style=\"color: #FF0087;\"\u003edata.table   \u003c/span\u003e\u003cspan\u003e (1.14.0)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003emagrittr     \u003c/span\u003e\u003cspan\u003e (2.0.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ekit          \u003c/span\u003e\u003cspan\u003e (0.0.7)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ecollapse     \u003c/span\u003e\u003cspan\u003e (1.6.5)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003ematrixStats  \u003c/span\u003e\u003cspan\u003e (0.59.0 \u0026lt; 0.60.0)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003efst          \u003c/span\u003e\u003cspan\u003e (0.9.4)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003exts          \u003c/span\u003e\u003cspan\u003e (0.12.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eroll         \u003c/span\u003e\u003cspan\u003e (1.1.6)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edygraphs     \u003c/span\u003e\u003cspan\u003e (1.1.1.6)\n# -- Extension packages ---------------------------------------------------------- \n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eRfast2       \u003c/span\u003e\u003cspan\u003e (0.0.9)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003elubridate    \u003c/span\u003e\u003cspan\u003e (1.7.10)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eclock        \u003c/span\u003e\u003cspan\u003e (0.3.1 \u0026lt; 0.4.0)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003efasttime     \u003c/span\u003e\u003cspan\u003e (1.0.2)\n# -- Dependencies ---------------------------------------------------------------- \n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ebase64enc    \u003c/span\u003e\u003cspan\u003e (0.1.3)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ecpp11        \u003c/span\u003e\u003cspan\u003e (0.3.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003edigest       \u003c/span\u003e\u003cspan\u003e (0.6.27)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eellipsis     \u003c/span\u003e\u003cspan\u003e (0.3.1 \u0026lt; 0.3.2)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003egenerics     \u003c/span\u003e\u003cspan\u003e (0.1.0)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eglue         \u003c/span\u003e\u003cspan\u003e (1.4.2)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ehtmltools    \u003c/span\u003e\u003cspan\u003e (0.5.1.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ehtmlwidgets  \u003c/span\u003e\u003cspan\u003e (1.5.3)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ejsonlite     \u003c/span\u003e\u003cspan\u003e (1.7.2)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003elattice      \u003c/span\u003e\u003cspan\u003e (0.20.44)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eRANN         \u003c/span\u003e\u003cspan\u003e (2.6.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eRcpp         \u003c/span\u003e\u003cspan\u003e (1.0.7)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eRcppArmadillo\u003c/span\u003e\u003cspan\u003e (0.10.2.1.0 \u0026lt; 0.10.6.0.0)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eRcppGSL      \u003c/span\u003e\u003cspan\u003e (0.3.8 \u0026lt; 0.3.9)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eRcppParallel \u003c/span\u003e\u003cspan\u003e (5.0.2 \u0026lt; 5.1.4)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eRcppZiggurat \u003c/span\u003e\u003cspan\u003e (0.1.5 \u0026lt; 0.1.6)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003eRfast        \u003c/span\u003e\u003cspan\u003e (2.0.1 \u0026lt; 2.0.3)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003erlang        \u003c/span\u003e\u003cspan\u003e (0.4.11)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003etzdb         \u003c/span\u003e\u003cspan\u003e (0.1.1 \u0026lt; 0.1.2)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FFAF00;\"\u003evctrs        \u003c/span\u003e\u003cspan\u003e (0.3.7 \u0026lt; 0.3.8)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003eyaml         \u003c/span\u003e\u003cspan\u003e (2.2.1)\n#  * \u003c/span\u003e\u003cspan style=\"color: #FF0087;\"\u003ezoo          \u003c/span\u003e\u003cspan\u003e (1.8.9)\n\u003c/span\u003e\u003c/CODE\u003e\n\u003ccode class=\"r\"\u003e# Resets the fastverse to defaults, removing any permanent modifications\nfastverse_reset()\u003c/code\u003e\n\u003c/PRE\u003e\n\n\u003c/details\u003e\n\u003cp\u003e \u003c/p\u003e\n\nIn addition to a global customization, separate *fastverse*'s can be created for projects by adding a `.fastverse` config file in the project directory and listing packages there. Only these packages will then be loaded and managed with `library(fastverse)` in the project. \n--\u003e\n\n### Suggested Extensions\n\nHigh-performing packages for different data manipulation and statistical computing topics are suggested below. \u003c!-- Each topic has a 2-character topic-id, which can be used to quickly attach all available packages with `fastvere_extend(topcis = c(..id's..))`, and to install missing packages by adding argument `install = TRUE`. --\u003e \nThe total (recursive) dependency count is indicated for each package. \n\n***\n\n#### Time Series\n\n- **[xts](https://github.com/joshuaulrich/xts)** and **[zoo](https://github.com/cran/zoo)**: Fast and reliable matrix-based time series classes providing fully identified ordered observations and various utilities for plotting and computations (1 dependency).\n\n- **[roll](https://github.com/jasonjfoster/roll)**: Fast rolling and expanding window functions for vectors and matrices (3 dependencies).\n\n  *Notes*: *xts*/*zoo* objects are preserved by *roll* functions and by *collapse*'s time series and data transformation functions^[*collapse* functions can also handle irregular time series.]. As *xts*/*zoo* objects are matrices, all *matrixStats* functions apply to them as well. *xts* objects can also easily be converted to and from *data.table*, which also has some fast rolling functions like `frollmean` and `frollapply`. \n  \n\u003c!-- Passing the `xts::index()` coerced to integer to the `t` argument of *collapse*'s `flag`, `fdiff` and `fgrowth` further allows exact time-based computations on irregularly spaced time series, which is not supported by *xts*'s built-in functions. --\u003e  \n\n#### Dates and Times\n\n- **[anytime](https://github.com/eddelbuettel/anytime)**: Anything to 'POSIXct' or 'Date' converter (2 dependencies).\n\n- **[fasttime](https://github.com/s-u/fasttime)**: Fast parsing of strings to 'POSIXct' (0 dependencies).\n\n- **[nanotime](https://github.com/eddelbuettel/nanotime)**: Provides a coherent set of temporal types and functions with nanosecond precision -  \n                based on the 'integer64' class (7 dependencies).\n\n- **[clock](https://github.com/r-lib/clock)**: Comprehensive library for date-time manipulations using a new family of orthogonal date-time classes (durations, time points, zoned-times, and calendars) (6 dependencies).\n\n- **[timechange](https://github.com/vspinu/timechange)**: Efficient manipulation of date-times accounting for time zones and daylight saving times (1 dependency).\n\n  *Notes*: Date and time variables are preserved in many *data.table* and *collapse* operations. *data.table* additionally offers an efficient integer based date class 'IDate' with some supporting functionality. *xts* and *zoo* also provide various functions to transform dates, and *zoo* provides classes 'yearmon' and 'yearqtr' for convenient computation with monthly and quarterly data. Package *mondate* also provides a class 'mondate' for monthly data. Many users also find **[lubridate](https://github.com/tidyverse/lubridate)** convenient for 'POSIX-' and 'Date' based computations.\n\n  \n  \u003c!-- - **nanotime**: (7 dependencies). --\u003e\n\n#### Strings\n\n- **[stringi](https://github.com/gagolews/stringi)**: Main R package for fast, correct, consistent, and convenient string/text manipulation (backend to *stringr* and *snakecase*) (0 dependencies).\n\n- **[stringfish](https://github.com/traversc/stringfish)**: Fast computation of common (base R) string operations using the ALTREP system (2 dependencies).\n\n- **[stringdist](https://github.com/markvanderloo/stringdist)**: Fast computation of string distance metrics, matrices, and fuzzy matching (0 dependencies).\n\n  *Notes*: At least two packages offer convenient wrappers around the rather rich *stringi* API: **[stringr](https://github.com/tidyverse/stringr)** provides simple, consistent wrappers for common string operations, based on *stringi* (3 dependencies), and **[snakecase](https://github.com/Tazinho/snakecase)** converts strings into any case, based on *stringi* and *stringr* (4 dependencies).\n\n#### Statistics and Computing\n\n- **[matrixStats](https://github.com/HenrikBengtsson/matrixStats)**: Efficient row-and column-wise (weighted) statistics on matrices and vectors, including computations on subsets of rows and columns (0 dependencies). \n\n- **[Rfast](https://github.com/RfastOfficial/Rfast)** and **[Rfast2](https://github.com/RfastOfficial/Rfast2)**: Heterogeneous sets of fast functions for statistics, estimation and data manipulation operating on vectors and matrices (4-5 dependencies).\n\n- **[vctrs](https://github.com/r-lib/vctrs/)**: Computational backend of the [*tidyverse*](https://github.com/tidyverse) that provides many basic programming functions for R vectors (including lists and data frames) implemented in C (such as sorting, matching, replicating, unique values, concatenating, splitting etc. of vectors). These are often significantly faster than base R equivalents, but generally not as aggressively optimized as some equivalents found in *collapse* or *data.table* (4 dependencies). \n\n- **[parallelDist](https://github.com/alexeckert/parallelDist)**: Multi-threaded distance matrix computation (3 dependencies).\n\n- **[coop](https://github.com/wrathematics/coop)**: Fast implementations of the covariance, correlation, and cosine similarity (0 dependencies).\n\n- **[rsparse](https://CRAN.R-project.org/package=rsparse)**: Implements many algorithms for statistical learning on sparse matrices - matrix factorizations, matrix completion, elastic net regressions, factorization machines (8 dependencies). See also package **[MatrixExtra](https://CRAN.R-project.org/package=MatrixExtra)**.\n\n- **[SLmetrics](https://github.com/serkor1/SLmetrics)**: Fast and memory-efficient evaluation of statistical learning algorithms, categorical, cross-sectional and time series data (3 dependencies). \n\n- **[fastmatrix](https://github.com/faosorios/fastmatrix)** provides a small set of functions written in C or Fortran providing fast computation of some matrices and operations useful in statistics (0 dependencies).\n\n- **[matrixTests](https://github.com/karoliskoncevicius/matrixTests)** efficient execution of multiple statistical hypothesis tests on rows and columns of matrices (1 dependency).\n\n- **[rrapply](https://CRAN.R-project.org/package=rrapply)**: The `rrapply()` function extends base `rapply()` by including a condition or predicate function for the application of functions and diverse options to prune or aggregate the result (0 dependencies).\n\n- **[dqrng](https://github.com/daqana/dqrng)**: Fast uniform, normal or exponential random numbers and random sampling (i.e. faster `runif`, `rnorm`, `rexp`, `sample` and `sample.int` functions) (3 dependencies).\n\n- **[fastmap](https://github.com/r-lib/fastmap)**: Fast implementation of data structures based on C++, including a key-value store (`fastmap`), stack (`faststack`), and queue (`fastqueque`) (0 dependencies).\n\n- **[fastmatch](https://github.com/s-u/fastmatch)**: A faster `match()` function (drop-in replacement for `base::match`, and `base::%in%`), that keeps the hash table in memory for much faster repeated lookups (0 dependencies).\n\n- **[hutilscpp](https://github.com/hughparsonage/hutilscpp)** provides C++ implementations of some frequently used utility functions in R (4 dependencies).\n\n  *Notes*: *Rfast* has a number of like-named functions to *matrixStats*. These are simpler but typically faster and support multi-threading. Some highly efficient statistical functions can also be found scattered across various other packages, notable to mention here are *Hmisc* (60 dependencies) and *DescTools* (17 dependencies). \u003c!-- *fastDummies* (16 dependencies) implements creation of dummy (binary) variables. --\u003e\n\n\u003c!-- \n- **fastmatch**: Fast match function.\n- **fastmap**: Fast Implementation of a Key-Value Store.\n- **fastDummies**: Fast Creation of Dummy (Binary) Columns and Rows from Categorical Variables. (16 dependencies)\n--\u003e  \n\n#### Spatial\n\n- **[sf](https://github.com/r-spatial/sf/)**: Leading framework for geospatial computing and manipulation in R, offering a simple and flexible spatial data frame and supporting functionality (12 dependencies). \n\n- **[s2](https://github.com/r-spatial/s2)**: Provides R bindings for [Google's s2 C++ library](https://github.com/google/s2geometry) for high-performance geometric calculations on\n    the sphere (3D, geographic/geodetic CRS). Used as a backend to *sf* for calculations on geometries with geographic/geodetic CRS, but using *s2* directly can provide substantial performance gains (2 dependencies). \n\n- **[geos](https://github.com/paleolimbot/geos/)**: Provides an R API to the [Open Source Geometry Engine (GEOS)](\u003chttps://trac.osgeo.org/geos/\u003e) C-library, which can be used to very efficiently manipulate planar (2D/flat/projected CRS) geometries, and a vector format with which to efficiently store 'GEOS' geometries. Used as a backend to *sf* for calculations on geometries with projected CRS, but using *geos* directly can provide substantial performance gains (2 dependencies).\n\n- **[stars](https://github.com/r-spatial/stars)**: Spatiotemporal data (raster and vector) in the form of dense arrays, with space and time being array dimensions (16 dependencies). \n\n- **[terra](https://github.com/rspatial/terra)**: Methods for spatial data analysis with raster and vector data. Processing of very large (out of memory) files is supported (1 dependency).\n\n- **[exactextractr](https://github.com/isciences/exactextractr)**: Provides fast extraction from raster datasets using polygons. Notably, it is much faster than *terra* for computing summary statistics of raster layers within polygons (17 dependencies). \n\n- **[geodist](https://github.com/hypertidy/geodist)**: Provides very fast calculation of geodesic distances (0 dependencies).\n\n- **[dggridR](https://github.com/r-barnes/dggridR)**: Provides discrete global grids for R: allowing accurate partitioning of the earths surface into equally sized grid cells of different shapes and sizes (11 dependencies). \n\n- **[cppRouting](https://github.com/vlarmet/cppRouting)**: Algorithms for routing and solving the traffic assignment problem, including calculation of distances, shortest paths and isochrones on weighted graphs using several (optimized) variants of Dijkstra's algorithm (4 dependencies).\n\n- **[igraph](https://github.com/igraph)**: Provides and R port to the *igraph* C library for complex network analysis and graph theory (11 dependencies).\n\n  *Notes*: *collapse* can be used for efficient manipulation and computations on *sf* data frames. *sf* also offers tight integration with *dplyr*. Another efficient routing package is [*dodgr*](https://github.com/UrbanAnalyst/dodgr) (45 dependencies). [*sfnetworks*](https://github.com/luukvdmeer/sfnetworks) allows network analysis combining *sf* and *igraph* (42 dependencies) and functions for network cleaning (partly taken from [tidygraph](https://github.com/thomasp85/tidygraph) which also wraps *igraph*). [*stplanr*](https://github.com/ropensci/stplanr) facilitates sustainable transport planning with R, including very useful helpers such as `overline()` to turn a set of linestrings (routes) into a network (45 dependencies). \n\n\n#### Visualization\n\n- **[dygraphs](https://github.com/rstudio/dygraphs)**: Interface to 'Dygraphs' interactive time series charting library (12 dependencies). \n\n- **[lattice](https://github.com/deepayan/lattice)**: Trellis graphics for R (0 dependencies). \n\n- **[grid](https://github.com/cran/grid)**: The grid graphics package (0 dependencies). \n\u003c!-- \n - **[vegabrite](https://github.com/vegawidget/vegabrite)** provides an interface to the [vega-lite](https://vega.github.io/vega-lite/) high-level grammar of interactive graphics. \n--\u003e\n- **[tinyplot](https://github.com/grantmcdermott/tinyplot)** provides a lightweight extension of the base R graphics system, with support for automatic grouping, legends, facets, and various other enhancements (0 dependencies). \n\n- **[ggplot2](https://github.com/tidyverse/ggplot2)**: Create elegant data visualizations using the Grammar of Graphics (27 dependencies). \n\n- **[scales](https://github.com/r-lib/scales)**: Scale functions for visualizations (11 dependencies). \n\n  *Notes:* *latticeExtra* provides extra graphical utilities base on *lattice*. *gridExtra* provides miscellaneous functions for *grid* graphics (and consequently for *ggplot2* which is based on *grid*). *gridtext* provides improved text rendering support for *grid* graphics. Many packages offer *ggplot2* extensions, (typically starting with 'gg') such as *ggExtra*, *ggalt*, *ggforce*, *ggh4x*, *ggmap*, *ggtext*, *ggthemes*, *ggrepel*, *ggridges*, *ggfortify*, *ggstatsplot*, *ggeffects*, *ggsignif*, *GGally*, *ggcorrplot*, *ggdendro*, etc.. Users in desperate need for greater performance may also find the (unmaintained) [lwplot](https://github.com/eddelbuettel/lwplot) package useful that provides a faster and lighter version of *ggplot2* with *data.table* backend.\n\n#### Data Manipulation in R Based on Faster Languages\n\n- **[r-polars](https://github.com/pola-rs/r-polars)** provides an R-port to the impressively fast [polars DataFrame's library](https://github.com/pola-rs/polars/) written in Rust (1 dependencies). \n\n  *Notes*: Package **[tidypolars](https://github.com/etiennebacher/tidypolars)** provides a *tidyverse*-style wrapper around *r-polars*. \n\n#### Data Input-Output, Serialization, and Larger-Than-Memory Processing (IO)  \n\n- **[fst](https://github.com/fstpackage/fst)**: A compressed data file format that is very fast to read and write. Full random access in both rows and columns allows reading subsets from a '.fst' file (2 dependencies). \n\n- **[qs](https://github.com/qsbase/qs)** provides a lightning-fast and complete replacement for the `saveRDS` and `readRDS` functions in R. It \n  supports general R objects with attributes and references - at similar speeds to *fst* - but does not provide on-disk random access to data subsets like *fst* (4 dependencies).\n  \n- **[arrow](https://github.com/apache/arrow/tree/master/r)** provides both a low-level interface to the Apache Arrow C++ library (a multi-language toolbox for accelerated data interchange and in-memory processing) including fast reading / writing delimited files, efficient storage of data as `.parquet` or `.feather` files, efficient (lazy) queries and computations, and sharing data between R and Python (14 dependencies). It provides methods for several *dplyr* functions allowing highly efficient data manipulation on arrow datasets. Check out the [useR2022 workshop](https://arrow-user2022.netlify.app/) on working with larger than memory data with apache arrow in R, and the [apache arrow R cookbook](\u003chttps://arrow.apache.org/cookbook/r/index.html\u003e) as well as the [awesome-arrow-r](https://github.com/thisisnic/awesome-arrow-r) repository.  \n\n- **[duckdb](https://github.com/duckdb/duckdb)**: DuckDB is a high-performance analytical database system that can be used on in-memory or out-of memory data (including csv, `.parquet` files, arrow datasets, and it's own `.duckdb` format), and that provides a rich SQL dialect and optimized query execution for data analysis (1 dependency). It can also be used with the *dbplyr* package that translates *dplyr* code to SQL. [This](https://www.christophenicault.com/post/large_dataframe_arrow_duckdb/) Article by Christophe Nicault (October 2022) demonstrates the integration of *duckdb* with R and *arrow*. Also see the [official docs](\u003chttps://duckdb.org/docs/api/r.html\u003e). \n\n- **[vroom](https://github.com/tidyverse/vroom)** provides fast reading of delimited files (23 dependencies).\n\n  *Notes*: *data.table* provides `fread` and `fwrite` for fast reading of delimited files. \n  \n#### Parallelization, High-Performance Computing and Out-Of-Memory Data\n\n- **[mirai](https://github.com/r-lib/mirai)**: Minimalist async evaluation framework for R: a ‘mirai’ evaluates an expression in a parallel process, on the local machine or over the network, returning the result automatically upon completion. Also provides a parallel map function (1 dependency). \n\n- See also the [High-Performance and Parallel Computing](https://CRAN.R-project.org/view=HighPerformanceComputing) Task View and the [futureverse](https://www.futureverse.org/). \n  \n####  Compiling R\n\n- **[nCompiler](https://github.com/nimble-dev/nCompiler)**: Compiles R functions to C++, and covers basic math, distributions, vectorized math and linear algebra, as well as basic control flow. R and Compiled C++ functions can also be jointly utilized in the a class 'nClass' that inherits from R6. An in-progress [user-manual](https://htmlpreview.github.io/?https://raw.githubusercontent.com/nimble-dev/nCompiler/master/UserManual/_site/index.html) provides an overview of the package. \n\n- **[ast2ast](https://github.com/Konrad1991/ast2ast)**: Also compiles R functions to C++, and is very straightforward to use (it has a single function `translate()` to compile R functions), but less flexible than [nCompiler](https://github.com/nimble-dev/nCompiler) (e.g. it currently does not support linear algebra). [Available on CRAN](https://CRAN.R-project.org/package=ast2ast) (6 dependencies).\n\n- **[odin](https://github.com/mrc-ide/odin)**: Implements R to C translation and compilation, but specialized for differential\n  equation solving problems. [Available on CRAN](https://CRAN.R-project.org/package=odin) (8 dependencies). \n\n- **[armacmp](https://github.com/dirkschumacher/armacmp)** translates linear algebra code written in R to C++ using the Armadillo Template Library. The package can also be used to write mathematical optimization routines that are translated and optimized in C++ using *RcppEnsmallen*.\n\n- **[r2c](https://github.com/brodieG/r2c)** provides compilation of R functions to be applied over many groups (e.g. grouped bivariate linear regression etc.). \n\n- **[FastR](https://github.com/oracle/fastr)** is a high-performance implementation of the entire R programming language, that can JIT compile R code to run on the [Graal VM](https://www.graalvm.org/).\n\n- **[inline](https://github.com/eddelbuettel/inline)** allows users to write C, C++ or Fortran functions and compile them directly to an R function for use within the R session. [Available on CRAN](https://CRAN.R-project.org/package=inline) (0 dependencies).\n\n  *Notes*: Many of these projects are experimental and not available as CRAN packages. \n\n#### R-like Data Manipulation in Faster Languages\n\n- **[tidypolars](https://github.com/markfairbanks/tidypolars)** is a python library built on top of [polars](https://github.com/pola-rs/polars/) that gives access to methods and functions familiar to R tidyverse users.\n\n- **[Tidier.jl](https://github.com/TidierOrg/Tidier.jl)** provides a Julia implementation of the tidyverse mini-language in Julia. Powered by the [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) library.\n\n####  R Bindings to Faster Languages\n\n- **[R's C API](http://adv-r.had.co.nz/C-interface.html)** is the most natural way to extend R and does not require additional packages. It is further documented in the [Writing R Extensions Manual](https://cran.r-project.org/doc/manuals/R-exts.html#System-and-foreign-language-interfaces), the [R Internals Manual](https://cran.r-project.org/doc/manuals/r-release/R-ints.html), the **[r-internals](https://github.com/hadley/r-internals)** repository and sometimes referred to in the [R Blog](https://developer.r-project.org/Blog/public/) (and some other Blogs on the web). Users willing to extend R in this way should familiarize themselves with R's garbage collection and [PROTECT Errors](https://github.com/kalibera/cran-checks/blob/master/rchk/PROTECT.md).\n\n- **[Rcpp](https://github.com/RcppCore/Rcpp)** provides seamless R and C++ integration, and is widely used to extend R with C++. Compared to the C API compile time is slower and object files are larger, but users don't need to worry about garbage collection and can use modern C++ as well as a rich set of R-flavored functions and classes (0 dependencies). \n\n- **[cpp11](https://github.com/r-lib/cpp11)** provides a simpler, header-only R binding to C++ that allows faster compile times and [several other enhancements](https://cpp11.r-lib.org/articles/motivations.html) (0 dependencies). \n\n- **[tidyCpp](https://github.com/eddelbuettel/tidycpp)** provides a tidy C++ wrapping of the C API of R - to make the C API more amenable to C++ programmers (0 dependencies). \n\n- **[JuliaCall](https://github.com/Non-Contradiction/JuliaCall)** Provides an R interface to the Julia programming language (11 dependencies). Other interfaces are provided by [XRJulia](https://github.com/johnmchambers/XRJulia) (2 dependencies) and [JuliaConnectoR](https://github.com/stefan-m-lenz/JuliaConnectoR) (0 dependencies).\n\n- **[rextendr](https://github.com/extendr/rextendr)** provides an R interface to the Rust programming language (29 dependencies). \n\n- **[rJava](https://github.com/s-u/rJava)** provides an R interface to Java (0 dependencies). \n\n  *Notes*: There are many Rcpp extension packages binding R to powerful C++ libraries, such as linear algebra through *RcppArmadillo* and *RcppEigen*, thread-safe parallelism through *RcppParallel* etc. \n  \n#### Tidyverse-like Data Manipulation built on *data.table*\n\n- **[tidytable](https://github.com/markfairbanks/tidytable)**: A tidy interface to *data.table* that is *rlang* compatible. Quite comprehensive implementation of *dplyr*, *tidyr* and *purr* functions. Package uses a class *tidytable* that inherits from *data.table*. The `dt()` function makes *data.table* syntax pipeable (12 total dependencies). \n\n- **[dtplyr](https://github.com/tidyverse/dtplyr)**: A tidy interface to *data.table* built around lazy evaluation i.e. users need to call `as.data.table()`, `as.data.frame()` or `as_tibble()` to access the results. Lazy evaluation holds the potential of generating more performant *data.table* code (20 dependencies). \n\n- **[tidyfst](https://github.com/hope-data-science/tidyfst)**: Tidy verbs for fast data manipulation. Covers *dplyr* and some *tidyr* functionality. Functions have `_dt` suffix and preserve *data.table* object. A [cheatsheet](\u003chttps://raw.githubusercontent.com/hope-data-science/tidyfst/master/docs/tidyfst_cheatsheet.pdf\u003e) is provided (7 dependencies). \n\n- **[tidyft](https://github.com/hope-data-science/tidyft)**: Tidy verbs for fast data operations by reference. Best for big data manipulation on out of memory data using facilities provided by *fst* (7 dependencies).\n\n- **[tidyfast](https://github.com/TysonStanley/tidyfast)**: Fast tidying of data. Covers *tidyr* functionality, `dt_` prefix, preserves *data.table* object (2 dependencies). \n\n- **[maditr](https://github.com/gdemin/maditr)**: Fast data aggregation, modification, and filtering with pipes and *data.table*. Minimal implementation with functions `let()` and `take()` for most common data manipulation tasks. Also provides Excel-like lookup functions (2 dependencies). \n\n- **[table.express](https://github.com/asardaes/table.express)** also o builds *data.table* expressions from *dplyr* verbs, without executing them eagerly. Similar to *dtplyr* but less mature (17 dependencies). \n\n  *Notes*: These packages are wrappers around *data.table* and do not introduce own compiled code. \n  \n\n***\n  \n#### Adding to this list  \n\nPlease notify me of any other packages you think should be included here. Such packages should be well designed, top-performing, low-dependency, and, with few exceptions, provide own compiled code. Please note that the *fastverse* focuses on general purpose statistical computing and data manipulation, thus I won't include fast packages to estimate specific kinds of models here (of which R also has a great many). \n","funding_links":[],"categories":["R"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastverse%2Ffastverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastverse%2Ffastverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastverse%2Ffastverse/lists"}