| Type: | Package |
| Title: | Generating Bootstrap Estimation Distributions of HR Data |
| Version: | 0.4.0 |
| Author: | Dan MacLean [aut, cre] |
| Maintainer: | Dan MacLean <dan.maclean@tsl.ac.uk> |
| Description: | Creates plots showing scored HR experiments and plots of distribution of means of ranks of HR score from bootstrapping. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| Imports: | dplyr, ggplot2, ggridges, grDevices, grid, magrittr, patchwork, rlang, stringr, tibble, viridisLite |
| RoxygenNote: | 7.3.3 |
| Suggests: | knitr, rmarkdown, readr, testthat (≥ 3.0.0) |
| Config/testthat/edition: | 3 |
| VignetteBuilder: | knitr |
| NeedsCompilation: | no |
| Packaged: | 2026-03-18 13:38:13 UTC; macleand |
| Repository: | CRAN |
| Date/Publication: | 2026-03-18 14:20:02 UTC |
Pipe operator
Description
See magrittr::%>% for details.
Usage
lhs %>% rhs
Value
result of previous expression
calculate ranks of a score column and adds result to a dataframe
Description
add_rank returns a copy of the passed data frame containing a new
column called rank which has the ranks of the named score column
Usage
add_rank(df, quo_score_col)
Arguments
df |
data frame |
quo_score_col |
quoted score column name |
Apply besthr theme consistently
Description
Applies the besthr theme and color scales to a ggplot object based on configuration settings. This ensures consistent theming across all plot components.
Usage
apply_besthr_theme(p, config, include_fill = TRUE, include_color = TRUE)
Arguments
p |
A ggplot object |
config |
A besthr_plot_config object |
include_fill |
Logical, whether to apply fill scale (default TRUE) |
include_color |
Logical, whether to apply color scale (default TRUE) |
Value
The ggplot object with theme and scales applied
Examples
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt, color = factor(cyl))) +
geom_point()
cfg <- besthr_plot_config(theme_style = "modern", color_palette = "okabe_ito")
apply_besthr_theme(p, cfg)
Create a unified data view for besthr plotting
Description
Extracts and organizes data from an hrest object for plotting. Computes unified axis limits that ensure alignment between observation and bootstrap panels.
Usage
besthr_data_view(hrest, config = NULL)
Arguments
hrest |
An hrest object from |
config |
A besthr_plot_config object (optional). If NULL, uses defaults. |
Value
An object of class "besthr_data_view" containing ranked data, original data, bootstrap samples, group means, confidence intervals, group sample sizes, unified rank limits, group column symbol, column info, control group name, and quantile values.
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
besthr color palettes
Description
Returns a color palette suitable for besthr visualizations. The default palette uses Okabe-Ito colorblind-safe colors.
Usage
besthr_palette(palette = "default", n = NULL)
Arguments
palette |
Character string specifying the palette. Options are:
|
n |
Number of colors to return. If NULL, returns all colors in palette. |
Value
A character vector of hex color codes
Examples
besthr_palette()
besthr_palette("okabe_ito", 3)
Create a besthr plot configuration
Description
Creates a configuration object that controls the appearance and behavior of besthr plots. All parameters have defaults that reproduce the original besthr appearance for backward compatibility.
Usage
besthr_plot_config(
panel_widths = c(1, 1),
panel_spacing = grid::unit(0.5, "cm"),
y_limits = NULL,
y_expand = 0.05,
point_size_range = c(2, 8),
point_alpha = 0.8,
mean_line_type = 3,
mean_line_width = 1,
density_alpha = 0.7,
density_style = "points",
theme_style = "modern",
color_palette = "okabe_ito"
)
Arguments
panel_widths |
Numeric vector of relative panel widths for patchwork layout. |
panel_spacing |
A grid unit specifying spacing between panels. |
y_limits |
Numeric vector of length 2 for y-axis limits, or NULL for auto. |
y_expand |
Numeric giving proportional expansion of y-axis limits. |
point_size_range |
Numeric vector of length 2 for min/max point sizes. |
point_alpha |
Numeric between 0 and 1 for point transparency. |
mean_line_type |
Line type for mean indicator lines. |
mean_line_width |
Line width for mean indicator lines. |
density_alpha |
Numeric between 0 and 1 for density plot transparency. |
density_style |
Character: "points" (default, jittered bootstrap points), "gradient" (density with CI shading), or "solid" (single color density). |
theme_style |
Character: "classic" or "modern". |
color_palette |
Character: "default", "okabe_ito", or "viridis". |
Value
An object of class "besthr_plot_config" containing all plot settings.
Examples
cfg <- besthr_plot_config()
cfg <- besthr_plot_config(panel_widths = c(2, 1), theme_style = "modern")
Get a preset plot style
Description
Returns a pre-configured besthr_plot_config object with sensible
defaults for common use cases. This is the easiest way to customize
besthr plot appearance without understanding all the configuration options.
Usage
besthr_style(style = "default")
Arguments
style |
Character string specifying the style preset:
|
Value
A besthr_plot_config object
Examples
d <- make_data()
hr <- estimate(d, score, group)
# Quick styling with presets
plot(hr, config = besthr_style("publication"))
plot(hr, config = besthr_style("presentation"))
plot(hr, config = besthr_style("density"))
# Same as default
plot(hr, config = besthr_style("default"))
Generate a summary table from besthr results
Description
Creates a publication-ready summary table containing group statistics, confidence intervals, and optionally effect sizes and significance.
Usage
besthr_table(
hrest,
format = "tibble",
digits = 2,
include_significance = FALSE
)
Arguments
hrest |
An hrest object from |
format |
Output format: "tibble" (default), "markdown", "html", or "latex" |
digits |
Number of decimal places for rounding (default 2) |
include_significance |
Logical, whether to include significance stars (default FALSE) |
Value
A tibble (if format = "tibble") or character string (other formats)
Examples
d <- make_data()
hr <- estimate(d, score, group)
besthr_table(hr)
besthr_table(hr, format = "markdown")
runs bootstrapping of ranks
Description
boostrap_dist runs multiple bootstrap resamplings using
bstrap_sample to generate a data frame of bootstrap rank means
of per group scores
Usage
bootstrap_dist(df, quo_score_col, quo_group_col, nits = 10, control = "A")
Arguments
df |
input data frame |
quo_score_col |
quoted column name containing the HR scores |
quo_group_col |
quoted group name containing the group column |
nits |
number of bootstrap iterations to do |
control |
character naming the control group that will be removed prior to bootstrapping |
resamples a rank column in a dataframe based on groups
Description
bstrap_sample performs a single iteration of bootstrapping of a rank
column in a data frame. The rows matching control in the quoted
quo_group_col column are removed. The remaining rows are grouped by
quo_group_col and in each group the rank column is resampled with
replacement and the mean rank of the resampling for each group is returned
Usage
bstrap_sample(iteration, quo_score_col, quo_group_col, df, control = "A")
Arguments
iteration |
integer giving the current bootstrap iteration from the calling function |
quo_score_col |
quoted column name containing the HR scores |
quo_group_col |
quoted group name containing the group name of the observation |
df |
input data frame |
control |
character naming the control group that will be removed prior to bootstrapping |
Build the bootstrap distribution panel
Description
Creates a ggplot showing ridge density plots of bootstrap distributions with confidence interval shading.
Usage
build_bootstrap_panel(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A ggplot object
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
build_bootstrap_panel(dv, cfg)
Build the observation panel
Description
Creates a ggplot showing either ranked observations (averaged tech reps) or raw scores with technical replicates displayed.
Usage
build_observation_panel(data_view, config, which = "rank_simulation")
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
which |
Character specifying panel type: "rank_simulation" for averaged ranked data, or "just_data" for raw scores with tech reps. |
Value
A ggplot object
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
build_observation_panel(dv, cfg, "rank_simulation")
Build the ranked observation panel
Description
Internal function to build the panel showing ranked observations.
Usage
build_ranked_panel(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A ggplot object
Build the technical replicate panel
Description
Internal function to build the panel showing raw scores with tech reps.
Usage
build_tech_rep_panel(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A ggplot object
Confidence interval fill colors
Description
Returns the fill colors used for confidence interval regions in bootstrap distribution plots.
Usage
ci_fill_colors(style = "default")
Arguments
style |
Character string: "default" for original colors, "modern" for updated colors |
Value
A named character vector of hex colors for low, middle, high regions
Compose besthr panels
Description
Combines observation and bootstrap panels using patchwork with proper alignment and shared legends.
Usage
compose_besthr_panels(panels, config)
Arguments
panels |
A list of ggplot objects to compose |
config |
A besthr_plot_config object |
Value
A patchwork object
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
p1 <- build_observation_panel(dv, cfg)
p2 <- build_bootstrap_panel(dv, cfg)
compose_besthr_panels(list(p1, p2), cfg)
Compute effect sizes from bootstrap distributions
Description
Calculates the effect size (difference from control) for each treatment group with bootstrap confidence intervals.
Usage
compute_effect_size(hrest)
Arguments
hrest |
An hrest object from |
Value
A data frame with columns: group, effect, effect_ci_low, effect_ci_high
Examples
d <- make_data()
hr <- estimate(d, score, group, nits = 500)
compute_effect_size(hr)
Compute significance from bootstrap distributions
Description
Determines statistical significance by checking if the bootstrap confidence interval for each treatment group overlaps with the control group's mean rank.
Usage
compute_significance(hrest)
Arguments
hrest |
An hrest object from |
Value
A data frame with columns: group, significant (logical), p_value, stars
Examples
d <- make_data()
hr <- estimate(d, score, group, nits = 500)
compute_significance(hr)
gets confidence interval limits for means of bootstrapped ranks
Description
conf_intervals calculates a low and a high quantile for the
mean column of each group of a dataframe
Usage
conf_intervals(df, quo_group_col, low = 0.05, high = 0.95)
Arguments
df |
input data frame |
quo_group_col |
quoted group name containing the column to group on |
low |
the low probability value of the quantile |
high |
the high probability value of the quantile |
Derive CI colors based on palette and theme
Description
Computes confidence interval fill colors that harmonize with the selected color palette and theme style. This ensures visual consistency between the observation panel colors and the bootstrap density shading.
Usage
derive_ci_colors(palette = "default", theme_style = "classic")
Arguments
palette |
Character string specifying the color palette: "default", "okabe_ito", or "viridis" |
theme_style |
Character string specifying the theme: "classic" or "modern" |
Value
A character vector of three hex colors with alpha for low, middle, and high CI regions
Examples
derive_ci_colors("default", "classic")
derive_ci_colors("okabe_ito", "modern")
derive_ci_colors("viridis", "classic")
dot plot of ranked data without technical replicates
Description
dot_plot returns a ggplot object of ranked data with group on the
x-axis and rank on the y-axis. Point size indicates the number of
observations seen at that point. A per group horizontal line shows the group
ranked mean
Usage
dot_plot(hrest, group_col, theme_style = "modern", color_palette = "okabe_ito")
Arguments
hrest |
the hrest object from |
group_col |
quoted group column name |
theme_style |
character specifying the theme style |
color_palette |
character specifying the color palette |
Perform bootstrap estimation of confidence intervals of ranked HR scores
Description
estimate carries out estimation of bootstrap confidence intervals on
ranked score data. Returns a hrest object of the result
Proceeeds by calculating score ranks, then bootstrapping ranks in non-control
groups retaining the mean for each bootstrap iteration. Calculates
low and high quantiles of bootstrap mean distributions for each group.
If technical replicates are provided in a second grouping column these will
be averaged before proceeding.
Usage
estimate(df, ..., control = "A", nits = 100, low = 0.025, high = 0.975)
Arguments
df |
data frame of score and group data. Contains minimally a score and group column |
... |
bare names of columns to use, minimally the score column and the group column in that order. Optionally a third technical replicate column can be provided |
control |
the value of the grouping column taken to be the control group |
nits |
the number of bootstap iterations to be done |
low |
the low probability value of the quantile |
high |
the high probability value of the quantile |
Value
a list object of class "hrest"
Examples
d1 <- make_data()
estimate(d1, score, group)
d2 <- make_data2()
estimate(d2, score_column_name, sample_column_name, rep_column_name )
d3 <- make_data3()
estimate(d3, score, sample, rep, nits = 1000)
Convert named columns to factors
Description
factorise_cols returns a copy of the passed data frame in which all
explicitly named columns are converted to factors with as.factor
All columns with only NA values are ommitted.
Usage
factorise_cols(df, col_list)
Arguments
df |
data frame |
col_list |
vector of quoted column names |
Format table as string
Description
Internal function to convert tibble to markdown, html, or latex string.
Usage
format_table(tbl, format)
Arguments
tbl |
A tibble to format |
format |
The output format |
Value
A character string
Get mean rank of groups in a data frame
Description
group_means groups the provided dataframe by a column and returns
a summary dataframe with a mean column containing the mean of the group's
rank column
Usage
group_means(df, quo_group_col)
Arguments
df |
input data frame |
quo_group_col |
quoted group name containing the column to group on |
Get number of observations in a group in a data frame
Description
group_ns groups the provided dataframe by a column and returns
a summary dataframe with an column n containg the number of
observations in a group
Usage
group_ns(df, quo_group_col)
Arguments
df |
input data frame |
quo_group_col |
quoted group name containing the column to group on |
Create bootstrap density layer
Description
Creates a ggplot2 layer showing ridge density plots of bootstrap distributions with confidence interval shading.
Usage
layer_bootstrap_density(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A list of ggplot2 layers
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
# layer_bootstrap_density returns layers to add to a ggplot
Create group mean lines layer
Description
Creates a ggplot2 layer showing horizontal lines at group mean ranks.
Usage
layer_group_means(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A ggplot2 layer
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
# layer_group_means returns a ggplot layer
Create ranked dots layer
Description
Creates a ggplot2 layer showing ranked observations as points, where point size indicates the count of observations at each rank/group combination.
Usage
layer_ranked_dots(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A list of ggplot2 layers
Examples
d <- make_data()
hr <- estimate(d, score, group)
dv <- besthr_data_view(hr)
cfg <- besthr_plot_config()
# layer_ranked_dots returns layers to add to a ggplot
Create technical replicate dots layer
Description
Creates a ggplot2 layer showing raw score observations with technical replicates displayed separately. Points are sized by observation count.
Usage
layer_tech_rep_dots(data_view, config)
Arguments
data_view |
A besthr_data_view object |
config |
A besthr_plot_config object |
Value
A list of ggplot2 layers
List available style presets
Description
Shows all available preset styles that can be used with besthr_style().
Usage
list_besthr_styles()
Value
A character vector of style names (invisibly)
Examples
list_besthr_styles()
return a sample data set of random values for two groups
Description
return a sample data set of random values for two groups
Usage
make_data()
Value
tibble of random values for two groups
Examples
d1 <- make_data()
return a sample data set of random values for two groups with three technical reps per group
Description
return a sample data set of random values for two groups with three technical reps per group
Usage
make_data2()
Value
tibble of random values for two groups with three technical reps per group
Examples
d2 <- make_data2()
return a sample data set of random values for three groups with three technical reps per group
Description
@examples
Usage
make_data3()
Details
d3 <- make_data3()
Value
tibble of random values for three groups with three technical reps per group
plots the hrest object
Description
returns a ggplot object representing the hrest object from
estimate. The content of left panel varies according to the
value of the which parameter. If which = "rank_simulation" is
used a plot of rank score values will be plotted in the left panel. In this
case technical replicates will be averaged if provided. If
which = "just_data" a plot of scores only is created and technical
replicates are displayed as is. In each case, the right hand panel shows the
rank bootstrap distribution and confidence interval boundaries for all non-
control groups.
Usage
## S3 method for class 'hrest'
plot(
x,
...,
which = "rank_simulation",
theme = "modern",
colors = "okabe_ito",
config = NULL,
show_significance = FALSE,
show_effect_size = FALSE
)
Arguments
x |
the |
... |
Other parameters (ignored) |
which |
the type of left hand panel to create. Either "rank_simulation" or "just_data" |
theme |
the visual theme to use. Either "modern" (default, cleaner contemporary style) or "classic" (original besthr appearance) |
colors |
the color palette to use. Either "okabe_ito" (default, colorblind-safe), "default" (original colors), or "viridis" |
config |
an optional besthr_plot_config object for advanced customization. If provided, theme and colors parameters are ignored. |
show_significance |
Logical, whether to show significance stars on groups where CI doesn't overlap control (default FALSE) |
show_effect_size |
Logical, whether to show effect size annotation (default FALSE) |
Value
ggplot object
Examples
d1 <- make_data()
hr_est <- estimate(d1, score, group)
plot(hr_est)
# Use modern theme with colorblind-safe palette
plot(hr_est, theme = "modern", colors = "okabe_ito")
# Advanced configuration
cfg <- besthr_plot_config(
panel_widths = c(2, 1),
point_size_range = c(3, 10)
)
plot(hr_est, config = cfg)
Raincloud plot showing bootstrap distributions
Description
Creates a raincloud plot specifically for bootstrap distributions, showing the distribution of bootstrap mean ranks with jittered points and summary statistics.
Usage
plot_bootstrap_raincloud(
hrest,
theme = "modern",
colors = "okabe_ito",
config = NULL
)
Arguments
hrest |
An hrest object from |
theme |
the visual theme to use. Either "modern" (default) or "classic" |
colors |
the color palette to use. Either "okabe_ito" (default), "default", or "viridis" |
config |
an optional besthr_plot_config object |
Value
A ggplot object
Examples
d <- make_data()
hr <- estimate(d, score, group, nits = 100)
plot_bootstrap_raincloud(hr)
Raincloud plot for hrest objects
Description
Creates a unified raincloud visualization combining:
Jittered raw data points
Half-violin density plots
Mean with confidence interval as pointrange
Usage
plot_raincloud(
hrest,
theme = "modern",
colors = "okabe_ito",
config = NULL,
show_bootstrap = TRUE,
jitter_width = 0.15,
point_size = 1.5
)
Arguments
hrest |
An hrest object from |
theme |
the visual theme to use. Either "modern" (default) or "classic" |
colors |
the color palette to use. Either "okabe_ito" (default), "default", or "viridis" |
config |
an optional besthr_plot_config object for advanced customization. If provided, theme and colors parameters are ignored. |
show_bootstrap |
Ignored (kept for backward compatibility). |
jitter_width |
Numeric width of jitter for data points. Default 0.15. |
point_size |
Numeric size for jittered points. Default 1.5. |
Details
This provides an alternative to the standard two-panel besthr plot, combining all information in a single comprehensive visualization.
Value
A ggplot object
Examples
d <- make_data()
hr <- estimate(d, score, group)
plot_raincloud(hr)
Print method for besthr_data_view
Description
Print method for besthr_data_view
Usage
## S3 method for class 'besthr_data_view'
print(x, ...)
Arguments
x |
A besthr_data_view object |
... |
Additional arguments (ignored) |
Value
Invisibly returns x
Print method for besthr_plot_config
Description
Print method for besthr_plot_config
Usage
## S3 method for class 'besthr_plot_config'
print(x, ...)
Arguments
x |
A besthr_plot_config object |
... |
Additional arguments (ignored) |
Value
Invisibly returns x
print a summary of the hrest object
Description
print a summary of the hrest object
Usage
## S3 method for class 'hrest'
print(x, ...)
Arguments
x |
hrest object |
... |
other parameters |
Value
null
Examples
d1 <- make_data()
hr_est <- estimate(d1, score, group)
print(hr_est)
Save besthr plot to file
Description
Saves a besthr visualization to a file with sensible publication defaults. Supports PNG, PDF, SVG, and TIFF formats.
Usage
save_besthr(
hrest,
filename,
type = "default",
width = 8,
height = 6,
dpi = 300,
...
)
Arguments
hrest |
An hrest object from |
filename |
Output filename. Format is detected from extension. |
type |
Plot type: "default" (two-panel) or "raincloud" |
width |
Plot width in inches (default 8) |
height |
Plot height in inches (default 6) |
dpi |
Resolution in dots per inch (default 300) |
... |
Additional arguments passed to the plot function (e.g., theme, colors) |
Value
The filename (invisibly)
Examples
## Not run:
d <- make_data()
hr <- estimate(d, score, group)
save_besthr(hr, "figure1.png")
save_besthr(hr, "figure1.pdf", width = 10, height = 8)
save_besthr(hr, "figure1.png", type = "raincloud")
## End(Not run)
Discrete color scale for besthr
Description
A discrete color scale using besthr palettes.
Usage
scale_color_besthr(palette = "default", ...)
scale_colour_besthr(palette = "default", ...)
Arguments
palette |
Character string specifying the palette (see |
... |
Additional arguments passed to |
Value
A ggplot2 discrete color scale
Examples
library(ggplot2)
ggplot(mtcars, aes(mpg, wt, color = factor(cyl))) +
geom_point() +
scale_color_besthr("okabe_ito")
Discrete fill scale for besthr
Description
A discrete fill scale using besthr palettes.
Usage
scale_fill_besthr(palette = "default", ...)
Arguments
palette |
Character string specifying the palette (see |
... |
Additional arguments passed to |
Value
A ggplot2 discrete fill scale
Examples
library(ggplot2)
ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) +
geom_bar() +
scale_fill_besthr("okabe_ito")
dot plot of score data with technical replicates
Description
tech_rep_dot_plot returns a ggplot object of score data with group on
technical replicate on the x-axis, score on the y-axis with point size
representing the number of observations at that point. Facets represent
individual groups
Usage
tech_rep_dot_plot(
hrest,
score_col,
group_col,
tech_rep_col,
theme_style = "modern",
color_palette = "okabe_ito"
)
Arguments
hrest |
the hrest object from |
score_col |
quoted score column name |
group_col |
quoted group column name |
tech_rep_col |
quoted tech replicate column name |
theme_style |
character specifying the theme style |
color_palette |
character specifying the color palette |
besthr ggplot2 theme
Description
A custom theme for besthr plots. The "classic" theme matches the original besthr appearance, while "modern" provides a cleaner, more contemporary look.
Usage
theme_besthr(style = "classic", base_size = 11, base_family = "")
Arguments
style |
Character string specifying the theme style. Options are:
|
base_size |
Base font size (default 11) |
base_family |
Base font family |
Value
A ggplot2 theme object
Examples
library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
theme_besthr("modern")
Update a besthr plot configuration
Description
Creates a new configuration by updating specific fields of an existing one.
Usage
update_config(config, ...)
Arguments
config |
An existing besthr_plot_config object |
... |
Named arguments to update |
Value
A new besthr_plot_config object
Examples
cfg <- besthr_plot_config()
cfg2 <- update_config(cfg, theme_style = "modern", panel_widths = c(2, 1))