A ‘usethis’-esque Package for Base R Versions of ‘tidyverse’ Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

---
output: rmarkdown::github_document
---

# freebase

A 'usethis'-esque Package for Base R Versions of 'tidyverse' Code

## Description

The 'tidyverse' is awesome, but can take a bit to compile on systems
where there are no pre-built binary packages. Methods are provided which use
the facilities of the 'usethis' package to snap-in base versions of useful
'tidyverse' functions that are mostly equivalent (some are more complete
than others). The base R counterpart functions will likely be slower than
the 'tidyverse' equivalents but using them will decrease 'Imports'
dependencies.

Use deliberately and with caution.

## NOTE

This package shares core concepts with [`noplyr`](https://github.com/yonicd/noplyr) (and the author of `noplyr` is a contributor to `freebase`). For valid, needed reason, `noplyr` uses `rlang` and that introduces a compilation dependency/requirement which `freebase` is trying to avoid. The goal of `freebase` is 100% base R implementation of core/most frequently used `tidyverse` components primarily for use by package authors who prefer `tidyverse` idioms and would like to use them in package development but do not want to introduce compilation and/or third-party dependencies.

As noted _just above_, `freebase` should be uses deliberately and with caution.

## What's Inside The Tin

The following functions are implemented:

- `use_detect`: Use base R versions of `purrr` `detect` functions (these support `~{}` formula functions)
- `use_infix_helpers`: Use infix-helpers
- `use_isers`: Use "is_" tester functions
- `use_keepers`: Use base R versions of `purrr` `keep` functions (these support `~{}` formula functions)
- `use_mappers`: Use base R versions of `purrr` `map` functions (these support `~{}` formula functions) along with `set_names()`
- `use_safely`: Use base R versions of `purrr` `safely` functions
- `use_tidylite()`: Use base R versions of core `tidyr` functions
- `use_walkers`: Use base R versions of `purrr` `walk` functions (these support `~{}` formula functions)

## Installation

```{r eval=FALSE}
devtools::install_git("git://gitlab.com/hrbrmstr/freebase")
```

```{r message=FALSE, warning=FALSE, error=FALSE, include=FALSE}
options(width=120)
```

## Usage

```{r message=FALSE, warning=FALSE, error=FALSE}
library(freebase)

# current version
packageVersion("freebase")

```