Illustrated quantile calculations from distributions

```
qdist(
dist = "norm",
p,
plot = TRUE,
verbose = FALSE,
invisible = FALSE,
resolution = 500L,
digits = 3L,
xlim,
ylim,
return = c("values", "plot"),
refinements = list(),
...
)
xqgamma(
p,
shape,
rate = 1,
scale = 1/rate,
lower.tail = TRUE,
log.p = FALSE,
...
)
xqt(p, df, ncp, lower.tail = TRUE, log.p = FALSE, ...)
xqchisq(p, df, ncp = 0, lower.tail = TRUE, log.p = FALSE, ...)
xqf(p, df1, df2, lower.tail = TRUE, log.p = FALSE, ...)
xqbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE, ...)
xqpois(p, lambda, lower.tail = TRUE, log.p = FALSE, ...)
xqgeom(p, prob, lower.tail = TRUE, log.p = FALSE, ...)
xqnbinom(p, size, prob, mu, lower.tail = TRUE, log.p = FALSE, ...)
xqbeta(p, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE, ...)
```

- dist
a character description of a distribution, for example

`"norm"`

,`"t"`

, or`"chisq"`

- p
a vector of probabilities

- plot
a logical indicating whether a plot should be created

- verbose
a logical

- invisible
a logical

- resolution
number of points used for detecting discreteness and generating plots. The default value of 5000 should work well except for discrete distributions that have many distinct values, especially if these values are not evenly spaced.

- digits
the number of digits desired

- xlim
x limits. By default, these are chosen to show the central 99.8\ of the distribution.

- ylim
y limits

- return
If

`"plot"`

, return a plot. If`"values"`

, return a vector of numerical values.- refinements
A list of refinements to the plot. See

`ggformula::gf_refine()`

.- ...
additional arguments, including parameters of the distribution and additional options for the plot. To help with name collisions (eg

`size`

for binomial distributions and`shape`

for gamma distributions), argument names beginning`plot_`

will be renamed to remove`plot_`

and passed only to the plot. The unprefixed version will used as a parameter for the the distribution.- shape
shape and scale parameters. Must be positive,

`scale`

strictly.- rate
an alternative way to specify the scale.

- scale
shape and scale parameters. Must be positive,

`scale`

strictly.- lower.tail
logical; if TRUE (default), probabilities are \(P[X \le x]\), otherwise, \(P[X > x]\).

- log.p
logical; if

`TRUE`

, probabilities/densities \(p\) are returned as \(log(p)\).- df
degrees of freedom (\(> 0\), maybe non-integer).

`df = Inf`

is allowed.- ncp
non-centrality parameter \(\delta\); currently except for

`rt()`

, only for`abs(ncp) <= 37.62`

. If omitted, use the central t distribution.- df1
degrees of freedom.

`Inf`

is allowed.- df2
degrees of freedom.

`Inf`

is allowed.- size
number of trials (zero or more).

- prob
probability of success on each trial.

- lambda
vector of (non-negative) means.

- mu
alternative parametrization via mean: see ‘Details’.

- shape1
non-negative parameters of the Beta distribution.

- shape2
non-negative parameters of the Beta distribution.

a vector of quantiles; a plot is printed as a side effect

The most general function is `qdist`

which can work with
any distribution for which a q-function exists. As a convenience, wrappers are
provided for several common distributions.

```
qdist("norm", seq(.1, .9, by = 0.10),
title = "Deciles of a normal distribution", show.legend = FALSE,
pattern = "rings")
#> [1] -1.2815516 -0.8416212 -0.5244005 -0.2533471 0.0000000 0.2533471 0.5244005
#> [8] 0.8416212 1.2815516
xqnorm(seq(.2, .8, by = 0.20), mean = 100, sd = 10)
#>
#> If X ~ N(100, 10), then
#> P(X <= 91.58379) = 0.2 P(X <= 97.46653) = 0.4 P(X <= 102.53347) = 0.6 P(X <= 108.41621) = 0.8
#> P(X > 91.58379) = 0.8 P(X > 97.46653) = 0.6 P(X > 102.53347) = 0.4 P(X > 108.41621) = 0.2
#>
#> [1] 91.58379 97.46653 102.53347 108.41621
qdist("unif", .5)
#> [1] 0.5
xqgamma(.5, shape = 3, scale = 4)
#> [1] 10.69624
xqgamma(.5, shape = 3, scale = 4, color = "black")
#> [1] 10.69624
xqbeta(.5, shape1 = .9, shape2 = 1.4, dlwd = 1)
#> [1] 0.3557401
xqchisq(c(.25,.5,.75), df = 3)
#> [1] 1.212533 2.365974 4.108345
xcbinom(c(0.80, 0.90), size = 1000, prob = 0.40)
#> [1] 375 380 420 426
# displayed as if continuous
xcbinom(c(0.80, 0.90), size = 5000, prob = 0.40)
#> [1] 1943 1956 2044 2057
xpbinom(c(480, 500, 520), size = 1000, prob = 0.48)
#> [1] 0.5127908 0.9027460 0.9948015
xpbinom(c(40, 60), size = 100, prob = 0.5)
#> [1] 0.02844397 0.98239990
xqpois(c(0.25, 0.5, 0.75), lambda = 12)
#> [1] 10 12 14
xcpois(0.50, lambda = 12)
#> [1] 10 14
xcpois(0.50, lambda = 12, refinements = list(scale_color_brewer(type = "qual", palette = 5)))
#> Scale for 'colour' is already present. Adding another scale for 'colour',
#> which will replace the existing scale.
#> [1] 10 14
```