---
title: "Tips & tricks"
author: "Roland Krasser"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Tips & tricks}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

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

```{r echo=TRUE, message=FALSE, warning=FALSE}
library(dplyr)
library(explore)
```

## Count with percent

A classic `count()` returns the number of observations.

```{r echo=TRUE, message=FALSE, warning=FALSE}
data <- use_data_penguins()
data %>% count(island)
```

To add percent values, simply use `count_pct()` from {explore}.

```{r echo=TRUE, message=FALSE, warning=FALSE}
data %>% count_pct(island)
```

## Add id

```{r echo=TRUE, message=FALSE, warning=FALSE}
data %>% glimpse()
```

To add an id variable, simply use `add_var_id()` from {explore}.

```{r echo=TRUE, message=FALSE, warning=FALSE}
data %>% add_var_id() %>% glimpse()
```

## User defined report

Create a user defined report (RMarkdown template) to explore your own data.

```{r echo=TRUE, message=FALSE, warning=FALSE}
create_notebook_explore(
  output_dir = tempdir(),
  output_file = "notebook-explore.Rmd")
```

## Data Dictionary

Create a Data Dictionary of a data set (Markdown File data_dict.md)

```{R eval=FALSE, echo=TRUE}
iris  %>%  data_dict_md(output_dir = tempdir())
```

Add title, detailed descriptions and change default filename

```{R eval=FALSE, echo=TRUE}
description <- data.frame(
                  variable = c("Species"), 
                  description = c("Species of Iris flower"))
data_dict_md(iris, 
             title = "iris flower data set", 
             description =  description, 
             output_file = "data_dict_iris.md",
             output_dir = tempdir())
```

## Color

You can make your explore-plot more colorful

```{r message=FALSE, warning=FALSE, fig.width=6, fig.height=4}
data <- use_data_penguins()
data |> explore(flipper_length_mm, color = "lightskyblue")
```

```{r message=FALSE, warning=FALSE, fig.width=6, fig.height=4}
data |>
  drop_obs_with_na() |> 
  explore(flipper_length_mm, bill_length_mm, 
          target = sex, color = c("deeppink", "blue"))
```

You can even mix your own colors

```{r echo=TRUE, message=FALSE, warning=FALSE}
colors <- mix_color("blue", n = 5)
colors
```

```{r echo=TRUE, message=FALSE, warning=FALSE}
show_color(colors)
```

```{r echo=TRUE, message=FALSE, warning=FALSE}
colors <- mix_color("gold", "red", n = 4)
colors
```

```{r echo=TRUE, message=FALSE, warning=FALSE}
show_color(colors)
```

Or use some of the predefined colors in {explore}

```{r echo=TRUE, message=FALSE, warning=FALSE}
get_color()
```

```{r echo=TRUE, message=FALSE, warning=FALSE}
colors <- get_color("google")
show_color(colors)
```

## Period yyyymm

This is how to calculate with periods (format yyyymm)

```{r echo=TRUE, message=FALSE, warning=FALSE}
yyyymm_calc(202410, add_month = 3)
```

```{r echo=TRUE, message=FALSE, warning=FALSE}
yyyymm_calc(c(202408, 202409, 202410), add_month = -1, add_year = -1)
```