---
title: "zmisc"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{zmisc}
%\VignetteEncoding{UTF-8}
%\VignetteEngine{knitr::rmarkdown}
editor_options:
chunk_output_type: console
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
# We need rprojroot to locate other files needed for the Vignette
library(rprojroot)
# Source a few helper/utility functions
source(find_package_root_file("vignettes","utils_knitr.R"))
source(find_package_root_file("vignettes","utils_roxygen.R"))
# Get roxygen blocks, use force to trigger any warnings immediately
blocks <- roxy_get_blocks(find_package_root_file())
blocks <- force(blocks)
```
## `r desc::desc_get("Title")`
`r desc::desc_get("Description")`
## Installation
You can install the released version of `zmisc` from [CRAN](https://cran.r-project.org/package=zmisc) with:
```r
install.packages("zmisc")
```
You can use `pak` to install the development version of `zmisc` from [GitHub](https://github.com/torfason/zmisc) with:
```r
pak::pak("torfason/zmisc")
```
## Usage
In order to use the package, you generally want to attach it first:
```{r load_package}
library(zmisc)
```
## Quick and easy value lookups
The functions [lookup()] and [lookuper()] are used to look up values from a lookup
table, which can be supplied as a `vector`, a `list`, or a `data.frame`. The functions
are in some ways similar to the Excel function `VLOOKUP()`, but are designed to work smoothly
in an R workflow, in particular within pipes.
### lookup: `r roxy_get_section(blocks, "lookup", "title")`
`r roxy_get_section(blocks, "lookup", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "lookup", "examples") |> kat_code()
```
### lookuper: `r roxy_get_section(blocks, "lookuper", "title")`
`r roxy_get_section(blocks, "lookuper", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "lookuper", "examples") |> kat_code()
```
## Safer sampling, sequencing and aggregation
The functions [zample()], [zeq()], and [zingle()] are intended to make your code
less likely to break in mysterious ways when you encounter unexpected boundary
conditions. The [zample()] and [zeq()] are almost identical to the [sample()]
and [seq()] functions, but a bit safer.
### zample: `r roxy_get_section(blocks, "zample", "title")`
`r roxy_get_section(blocks, "zample", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "zample", "examples") |> kat_code()
```
### zeq: `r roxy_get_section(blocks, "zeq", "title")`
`r roxy_get_section(blocks, "zeq", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "zeq", "examples") |> kat_code()
```
### zingle: `r roxy_get_section(blocks, "zingle", "title")`
`r roxy_get_section(blocks, "zingle", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "zingle", "examples") |> kat_code()
```
## Getting a better view on variables
The [notate()] function adds annotations to `factor` and `labelled` variables
that make it easier to see both values and labels/levels when using the [View()]
function
### notate: `r roxy_get_section(blocks, "notate", "title")`
`r roxy_get_section(blocks, "notate", "description")`
#### Examples
```{r, echo=FALSE}
roxy_get_section(blocks, "notate", "examples") |> kat_code()
```
[lookup()]: https://torfason.github.io/zmisc/reference/lookup.html
[lookuper()]: https://torfason.github.io/zmisc/reference/lookuper.html
[zeq()]: https://torfason.github.io/zmisc/reference/zeq.html
[zample()]: https://torfason.github.io/zmisc/reference/zample.html
[zingle()]: https://torfason.github.io/zmisc/reference/zingle.html
[notate()]: https://torfason.github.io/zmisc/reference/zingle.html
[seq()]: https://rdrr.io/r/base/seq.html
[sample()]: https://rdrr.io/r/base/sample.html
[View()]: https://rdrr.io/r/utils/View.html