---
title: "collapse Documentation and Resources"
author: "Sebastian Krantz"
date: "`r Sys.Date()`"
output: 
  rmarkdown::html_vignette:

vignette: >
  %\VignetteIndexEntry{collapse Documentation and Resources}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

*collapse* is a C/C++ based package for data transformation and statistical computing in R. It's aims are:

1. To facilitate complex data transformation, exploration and computing tasks in R.
2. To help make R code fast, flexible, parsimonious and programmer friendly. 

Documentation comes in 6 different forms:

## Built-In Structured Documentation

After installing *collapse*, you can call `help("collapse-documentation")` which will produce a central help page providing a broad overview of the entire functionality of the package, including direct links to all function documentation pages and links to 13 further topical documentation pages (names in `.COLLAPSE_TOPICS`) describing how clusters of related functions work together. 

<!-- The names of these additional help pages are contained in a global macro `.COLLAPSE_TOPICS` and can so easily be called from the R console as well. Function documentation is interlinked with the relevant topical pages, and all documentation pages link back to the central overview page at `help("collapse-documentation")`.  -->

Thus *collapse* comes with a fully structured hierarchical documentation which you can browse within R - and that provides everything necessary to fully understand the package. The Documentation is also available [online](<https://sebkrantz.github.io/collapse/reference/collapse-documentation.html>).

The package page under `help("collapse-package")` provides some general information about the package and its design philosophy, as well as a compact set of examples covering important functionality. 

Reading `help("collapse-package")` and `help("collapse-documentation")` is the most comprehensive way to get acquainted with the package. `help("collapse-documentation")` is always the most up-to-date resource.

## Cheatsheet

An up-to-date (v2.0) [cheatsheet](<https://raw.githubusercontent.com/SebKrantz/collapse/master/misc/collapse%20cheat%20sheet/collapse_cheat_sheet.pdf>) compactly summarizes the package. 

## Article on arXiv

An [article](https://arxiv.org/abs/2403.05038) on *collapse* (v2.0.10) has been submitted to the [Journal of Statistical Software](https://www.jstatsoft.org/) in March 2024. 


## useR 2022 Presentation and Slides

I have presented collapse (v1.8) in some level of detail at useR 2022. A 2h video recording that provides a quite comprehensive introduction is available [here](<https://www.youtube.com/watch?v=OwWT1-dSEts>). The corresponding slides are available [here](<https://raw.githubusercontent.com/SebKrantz/collapse/master/misc/useR2022%20presentation/collapse_useR2022_final.pdf>).

## Vignettes

Updated vignettes are 

* [***collapse* for *tidyverse* Users**](<https://sebkrantz.github.io/collapse/articles/collapse_for_tidyverse_users.html>): A quick introduction to *collapse* for *tidyverse* users

* [***collapse* and *sf***](<https://sebkrantz.github.io/collapse/articles/collapse_and_sf.html>): Shows how collapse can be used to efficiently manipulate *sf* data frames

* [***collapse*'s Handling of R Objects**](<https://sebkrantz.github.io/collapse/articles/collapse_object_handling.html>): A quick view behind the scenes of class-agnostic R programming

* [**Developing with *collapse***](<https://sebkrantz.github.io/collapse/articles/developing_with_collapse.html>): How to write efficient statistical packages using R and *collapse*


The other vignettes (only available [online](<https://sebkrantz.github.io/collapse/articles/index.html>)) do not cover major features introduced in versions >= 1.7, but contain much useful information and examples:

* [**Introduction to *collapse* **](<https://sebkrantz.github.io/collapse/articles/collapse_intro.html>): Introduces key features in a structured way

* [***collapse* and *dplyr* **](<https://sebkrantz.github.io/collapse/articles/collapse_and_dplyr.html>): Demonstrates the integration of collapse with *dplyr* / *tidyverse* workflows and associated performance improvements

* [***collapse* and *plm***](<https://sebkrantz.github.io/collapse/articles/collapse_and_plm.html>): Demonstrates the integration of collapse with *plm* and shows examples of efficient programming with panel data

* [***collapse* and *data.table***](<https://sebkrantz.github.io/collapse/articles/collapse_and_data.table.html>): Shows how collapse and *data.table* may be used together in a harmonious way


## Blog

I maintain a [blog](<https://sebkrantz.github.io/Rblog/>) linked to [Rbloggers.com](<https://www.r-bloggers.com/>) where I introduced *collapse* with some compact posts covering central functionality. Among these, the post about [programming with *collapse*](<https://sebkrantz.github.io/Rblog/2020/09/13/programming-with-collapse/>) is useful for developers. 
<!--
A recent post about [*collapse* and the *fastverse*](https://sebkrantz.github.io/Rblog/2023/04/12/collapse-and-the-fastverse-reflecting-the-past-present-and-future/) also provides a broader contextualization and reflective outlook for the *collapse* and [*fastverse*](https://fastverse.github.io/fastverse/) projects. 
-->
