Learn R Programming

⚠️There's a newer version (0.3.0) of this package.Take me there.

plu

Pluralize phrases in R

Overview

plu provides a simplified way to dynamically generate plain-language messages in R when we can’t know beforehand whether a message will be singular or plural.

Pluralizes English phrases based on the length of an associated vector. Contains helper functions to create natural language lists from vectors and to include the length of a vector in natural language.

Installation

You can install the stable release of plu from CRAN with:

install.packages("plu")

You can install the development version of plu from GitHub with:

# install.packages("remotes")
remotes::install_github("rossellhayes/plu")

Usage

formulas1 <- c(x %in% 1:3 ~ "low", x %in% 4:6 ~ "medium", "x %in% 7:9")
formulas2 <- c(x %in% 1:3 ~ "low", x %in% 4:6 ~ "medium", "x %in% 7:9", "high")
problems1 <- Filter(function(x) !rlang::is_formula(x), formulas1)
problems2 <- Filter(function(x) !rlang::is_formula(x), formulas2)

paste(
  "All arguments must be formulas.",
  plu::ral("Argument", problems1), 
  plu::stick(problems1),
  plu::ral("isn't a formula.", problems1)
)
#> [1] "All arguments must be formulas. Argument x %in% 7:9 isn't a formula."

paste(
  "All arguments must be formulas.",
  plu::ral("Argument", problems2), 
  plu::stick(sapply(problems2, encodeString, quote = "`")),
  plu::ral("isn't a formula.", problems2)
)
#> [1] "All arguments must be formulas. Arguments `x %in% 7:9` and `high` aren't formulas."

ints <- as.integer(runif(20, -10, 10))
paste(
  "All inputs must be non-negative.",
  plu::stick(
    plu::more(
      sapply(ints[ints < 0], encodeString, quote = "`"), type = "integer"
    )
  ),
  plu::ral("is {negative}.", ints[ints < 0])
)
#> [1] "All inputs must be non-negative. `-6`, `-2`, `-5`, `-1`, `-2` and 6 more integers are negative."

Credits

Hex sticker font is Bodoni* by indestructible type*.

Image adapted from icon made by Freepik from flaticon.com.


Please note that the plu project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('plu')

Monthly Downloads

251

Version

0.2.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Alexander Rossell Hayes

Last Published

April 7th, 2021

Functions in plu (0.2.1)

plu-package

plu: Dynamically Pluralize Phrases
plu_ralize

Pluralize a word
plu_more

Informatively display a maximum number of elements
plu_ral

Pluralize a phrase based on the length of a vector
plu_stick

Collapse a vector into a natural language string
capitalize

Capitalization
get_fun

Find a function