`R/ratio.R`

`ratio.Rd`

Convert numbers to ratio character vectors (two to one, one in three, five out of ten)

```
ratio(x, sep = "in", max_n = Inf, negative = "negative", ...)
nom_ratio(x, sep = "in", max_n = Inf, negative = "negative", ...)
```

- x
A numeric vector

- sep
A character vector separating components of the ratio. Defaults to

`"in"`

.- max_n
A numeric vector. When the absolute value of

`x`

is greater than`max_n`

,`x`

remains numeric instead of being converted to words. If`max_n`

is negative, no`x`

s will be converted to words. (This can be useful when`max_n`

is passed by another function.) Defaults to`Inf`

, which converts all`x`

s to words.- negative
A character vector to append to negative numbers. Defaults to

`"negative"`

.- ...
Arguments passed on to

`fracture::frac_mat`

`denom`

If

`denom`

is not`NULL`

, all fractions will have a denominator of`denom`

. This will ignore all other arguments that affect the denominator.`base_10`

If

`TRUE`

, all denominators will be a power of 10.`common_denom`

If

`TRUE`

, all fractions will have the same denominator.If the least common denominator is greater than

`max_denom`

,`max_denom`

is used.`max_denom`

All denominators will be less than or equal to

`max_denom`

.If

`base_10`

is`TRUE`

, the maximum denominator will be the largest power of 10 less than`max_denom`

.A

`max_denom`

greater than the inverse square root of machine double epsilon will produce a warning because floating point rounding errors can occur when denominators grow too large.

A character vector of the same length as `x`

`x`

is converted to a fraction by `fracture::frac_mat()`

.

Other number names:
`adverbial()`

,
`cardinal()`

,
`collective()`

,
`denominator()`

,
`numerator()`

,
`ordinal()`

```
paste0("Our team is outnumbered ", nom_ratio(10), ".")
#> [1] "Our team is outnumbered ten in one."
paste0("The chances of winning are ", nom_ratio(1/1000000, sep = "in"), ".")
#> [1] "The chances of winning are one in one million."
nom_ratio(c(1, 10, 100))
#> [1] "one in one" "ten in one" "one hundred in one"
nom_ratio(c(0, 0.5, 1.5))
#> [1] "zero in one" "one in two" "three in two"
nom_ratio(c(0, 0.125, 0.625, 1), sep = "out of", common_denom = TRUE)
#> [1] "zero out of eight" "one out of eight" "five out of eight"
#> [4] "eight out of eight"
nom_ratio(5 / 10, sep = "in", base_10 = TRUE)
#> [1] "five in ten"
nom_ratio(6 / 25, sep = "in")
#> [1] "six in twenty-five"
nom_ratio(6 / 25, sep = "out of", max_denom = 10)
#> [1] "one out of four"
```