Parses simple string distribution specifications, like
"normal(0, 1)", into two columns of
a data frame, suitable for use with the
args aesthetics of
and its shortcut stats (like
stat_halfeye()). This format is output
brms::get_prior, making it particularly useful for visualizing priors from
parse_dist(object, ..., dist = ".dist", args = ".args", to_r_names = TRUE) # S3 method for default parse_dist(object, ...) # S3 method for data.frame parse_dist( object, dist_col, ..., dist = ".dist", args = ".args", to_r_names = TRUE ) # S3 method for character parse_dist(object, ..., dist = ".dist", args = ".args", to_r_names = TRUE) # S3 method for factor parse_dist(object, ..., dist = ".dist", args = ".args", to_r_names = TRUE) # S3 method for brmsprior parse_dist( object, dist_col = prior, ..., dist = ".dist", args = ".args", to_r_names = TRUE ) r_dist_name(dist_name)
A character vector containing distribution specifications or a data frame with a column containing distribution specifications.
Arguments passed to other implementations of
The name of the output column to contain the distribution name
The name of the output column to contain the arguments to the distribution
TRUE (the default), certain common aliases for distribution names are
automatically translated into names that R can recognize (i.e., names which have functions starting
d representing random number generators, distribution
functions, etc. for that distribution), using the
r_dist_name function. For example,
"normal" is translated into
"lognormal" is translated into
A bare (unquoted) column or column expression that resolves to a character vector of distribution specifications.
r_dist_name, a character vector of distribution names to be translated into
distribution names R recognizes. Unrecognized names are left as-is.
parse_dist returns a data frame containing at least two columns named after the
parameters. If the input is a data frame, the output is a data frame of the same length with those
two columns added. If the input is a character vector or factor, the output is a two-column data frame
with the same number of rows as the length of the input.
r_dist_name returns a character vector the same length as the input containing translations of the
input names into distribution names R can recognize.
parse_dist() can be applied to character vectors or to a data frame + bare column name of the
column to parse, and returns a data frame with
".args" columns added.
r_dist_name() to translate distribution names into names recognized
r_dist_name() takes a character vector of names and translates common names into R
distribution names. Names are first made into valid R names using
then translated (ignoring character case,
"log-Normal", and any number of other variants
all get translated into
stat_slabinterval() and its shortcut stats, which can easily make use of
the output of this function using the
library(dplyr) # parse dist can operate on strings directly... parse_dist(c("normal(0,1)", "student_t(3,0,1)")) #> # A tibble: 2 × 2 #> .dist .args #> <chr> <list> #> 1 norm <list > #> 2 student_t <list > # ... or on columns of a data frame, where it adds the # parsed specs back on as columns data.frame(prior = c("normal(0,1)", "student_t(3,0,1)")) %>% parse_dist(prior) #> prior .dist .args #> 1 normal(0,1) norm 0, 1 #> 2 student_t(3,0,1) student_t 3, 0, 1 # parse_dist is particularly useful with the output of brms::prior(), # which follow the same format as above