---
title: "pivotSummary"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{pivotSummary}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{r setup}
library(presenter)
library(dplyr)
```

# Pivot summary

Transpose a tibble of summary statistics in tidy format. Convenient function for transposing the output of dplyr"s `group_by` and `summarize` operation.

## 0 groups

Transpose a 1 row numerical summary:

**wide format**

```{r}
iris %>% 
  summarize(across(where(is.numeric), mean), .groups = "drop") -> sumr0

sumr0
```

**long format**

```{r}

sumr0 %>% 
  pivot_summary()

```

## 1 group

A grouped summary can be transposed by providing the name of the group column.

**wide format**

```{r}
iris %>% 
  group_by(Species) %>% 
  summarize(across(where(is.numeric), mean), .groups = "drop") -> sumr1

sumr1
```
**long format**

```{r}

sumr1 %>% 
  pivot_summary(Species)
```


## 2 groups

Supports transposing numerical summaries with multiple groups using tidyselect. 

**long format**


```{r}

iris %>%
  mutate(Species1 = sample(Species)) %>%
  group_by(Species, Species1) %>% 
  summarize(across(where(is.numeric), mean), .groups = "drop") -> sumr2
 
sumr2
```


Group names are concatenated and pivoted.

**wide format**

```{r}
sumr2 %>% 
   pivot_summary(matches("Spec")) 
```

