library(distplyr)
#>
#> Attaching package: 'distplyr'
#> The following object is masked from 'package:stats':
#>
#>     sd
library(magrittr)
library(tibble)

distplyr provides a vocabulary of verbs for manipulating distributions.

Unary operations:

• condition() (under development): Restrict the possible values that a random variable can take.
• +/- or shift() (under development): Add a constant to a random variable.
• *// or scale() (under development): Multiply a constant to a random variable.

Binary operations:

• graft_left() and graft_right(): Replace the upper or lower tail of a distribution with another distribution.

n-ary operations:

• mix(): Make a mixture distribution from two or more distributions.

Each of these take a distribution as its first argument(s), and return a distribution, making them pipeable.

## Examples

Consider an empirical distribution of Ozone measurements from the airquality dataset:

o3_raw <- as_tibble(airquality) %>%
stepdst(Ozone, data = .)

We can graft a GPD to either end:

o3_with_tails <- o3_raw %>%
graft_right(dst_gpd(100, 30, 1), sep_y = 100)
plot(o3_raw, "survival", n = 1001, to = 160)
plot(o3_with_tails, "survival", n = 1001, lty = 2, add = TRUE)