---
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 5 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/index.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.

## useR 2022 Presentation and Slides

I have presented collapse in detail at useR 2022. A 2h video recording that provides a quite comprehensive up-to-date 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>).

## Cheatsheet

There is an updated (2022) [cheatsheet](<https://raw.githubusercontent.com/SebKrantz/cheatsheets/master/collapse.pdf>) that compactly summarizes the package. 

## Vignettes

I wrote a recent (2023) rather technical vignette providing some details on *collapse*'s handling of R objects:

* [***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

There are 5 further vignettes which are available [online](<https://sebkrantz.github.io/collapse/articles/index.html>) (due to their size and the enhanced browsing experience on the website):

* [**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

* [***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

**Note** that these vignettes currently do not cover major features introduced in versions 1.7 through 1.9. They have been updated if you see a 2023 in the date of the vignette. Updating them is currently not a priority for me, but you are welcome to help update them. 

## 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. 
<!-- for ambitious users and developers willing to build on *collapse*. --> 
<!-- , as it exposes to some degree how central parts of *collapse* work together and provides tips on how to write very efficient *collapse* code. Future blog posts will expose some specialized functionality in more detail. -->


