distributions3
, inspired by the eponynmous Julia
package, provides a
generic function interface to probability distributions.
distributions3
has two goals:
Replace the rnorm()
, pnorm()
, etc, family of functions with S3
methods for distribution objects
Be extremely well documented and friendly for students in intro stat classes.
The main generics are:
random()
: Draw samples from a distribution.pdf()
: Evaluate the probability density (or mass) at a point.cdf()
: Evaluate the cumulative probability up to a point.quantile()
: Determine the quantile for a given probability.
Inverse of cdf()
.You can install distributions3
with:
install.packages("distributions3")
You can install the development version with:
install.packages("devtools")
devtools::install_github("alexpghayes/distributions3")
The basic usage of distributions3
looks like:
library("distributions3")
X <- Bernoulli(0.1)
random(X, 10)
#> [1] 0 0 0 0 0 0 0 0 0 0
pdf(X, 1)
#> [1] 0.1
cdf(X, 0)
#> [1] 0.9
quantile(X, 0.5)
#> [1] 0
Note that quantile()
always returns lower tail probabilities. If
you aren’t sure what this means, please read the last several paragraphs
of vignette("one-sample-z-confidence-interval")
and have a gander at
the plot.
If you are interested in contributing to distributions3
, please reach
out on Github! We are happy to review PRs contributing bug fixes.
Please note that distributions3
is released with a Contributor Code
of
Conduct.
By contributing to this project, you agree to abide by its terms.
For a comprehensive overview of the many packages providing various distribution related functionality see the CRAN Task View.
distributional
provides distribution objects as vectorized S3 objectsdistr6
builds on
distr
, but uses R6 objectsdistr
is quite similar
to distributions
, but uses S4 objects and is less focused on
documentation.fitdistrplus
provides extensive functionality for fitting various distributions
but does not treat distributions themselves as objectsAny scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.