Package 'controlcharts'

Title: Interactive Plotting for Funnel, Sigma, and Statistical Process Control Charts
Description: Generate interactive funnel plots, multi-indicator sigma charts, and statistical process control ('SPC') charts. Chart calculation and plotting use JavaScript, allowing dynamic charts without a Shiny server. For more details see Spiegelhalter (2004) <doi:10.1002/sim.1970> and Pfadt & Wheeler (1995) <doi:10.1901/jaba.1995.28-349>.
Authors: Andrew R. Johnson [aut, cre] (ORCID: <https://orcid.org/0000-0001-7000-8065>), Healthcare Quality Intelligence Unit (Western Australia Health) [aut]
Maintainer: Andrew R. Johnson <[email protected]>
License: MIT + file LICENSE
Version: 0.0.27
Built: 2026-10-21 07:55:21 UTC
Source: https://github.com/AUS-DOH-Safety-and-Quality/controlcharts

Help Index


Generate interactive Funnel chart

Description

Generate interactive Funnel chart

Usage

funnel(
  data,
  keys,
  numerators,
  denominators,
  indicators = NULL,
  tooltips = NULL,
  labels = NULL,
  aggregations = NULL,
  title = NULL,
  canvas_settings = NULL,
  funnel_settings = NULL,
  misc_settings = NULL,
  outlier_settings = NULL,
  scatter_settings = NULL,
  line_settings = NULL,
  x_axis_settings = NULL,
  y_axis_settings = NULL,
  label_settings = NULL,
  summary_table_settings = NULL,
  tooltip_settings = NULL,
  width = NULL,
  height = NULL,
  elementId = NULL,
  return_objs = c("html_plot", "static_plot", "limits")
)

Arguments

data

A data frame containing the data for the chart.

keys

A vector or column name representing the categories of the chart.

numerators

A numeric vector or column name representing the numerators for each category.

denominators

A numeric vector or column name representing the denominators for each category.

indicators

Optional vector or list of vectors identifying indicators. Supplying indicators displays a multi-indicator sigma chart using the native Funnel visual. Each indicator is calculated against its comparison population.

tooltips

A vector or column name, or a list of them, representing additional tooltips for each category. Each is labelled by its name in the list, or else by the expression supplied. NULL for none. Limits include them with their R types, reduced within each key by aggregations$tooltips.

labels

A vector or column name representing the labels for each category. NULL for none.

aggregations

A list of aggregation function names for each field if multiple values are provided for each key. Valid options are:

  • "first": returns the first non-missing value

  • "last": returns the last non-missing value

  • "sum": returns the sum of values

  • "mean": returns the mean of values

  • "min": returns the minimum value

  • "max": returns the maximum value

  • "median": returns the median value

  • "count": returns the count of non-missing values

Defaults to "sum" for numerators and denominators, and "first" otherwise. Every aggregation ignores missing values; an all-missing group has a count of 0 and is otherwise missing. Numerators and denominators are aggregated independently.

title

Optional title to be added to the top of the chart. It can be a character string for the title text only, or a list with the following options:

  • text: Title text (default: NULL)

  • font_size: Font size of the title (default: "16px")

  • font_weight: Font weight of the title (default: "bold")

  • font_family: Font family of the title (default: "'Arial', sans-serif")

  • x: Horizontal (x) position of the title as a percentage (default: "50%")

  • y: Vertical (y) position of the title in pixels (default: 5)

  • text_anchor: Text anchor of the title (default: "middle")

  • dominant_baseline: Dominant baseline of the title (default: "hanging")

  • subtitle: Subtitle text, drawn below the title (default: NULL)

  • subtitle_font_size: Font size of the subtitle (default: "12px")

  • subtitle_font_weight: Font weight of the subtitle (default: "normal")

canvas_settings

Optional list of settings for the canvas, see funnel_default_settings('canvas') for valid options.

funnel_settings

Optional list of settings for the Funnel chart, see funnel_default_settings("funnel") for valid options.

misc_settings

Optional native MISC settings. group selects a value from keys; if omitted, the first group is shown. See funnel_default_settings("misc") for valid options.

outlier_settings

Optional list of settings for outliers, see funnel_default_settings('outliers') for valid options. Detection switches use the first valid outlier settings after sorting and aggregating keys for the whole chart, for both plots and limits.

scatter_settings

Optional list of settings for scatter points, see funnel_default_settings('scatter') for valid options.

line_settings

Optional list of settings for lines, see funnel_default_settings('lines') for valid options.

x_axis_settings

Optional list of settings for the x-axis, see funnel_default_settings('x_axis') for valid options.

y_axis_settings

Optional list of settings for the y-axis, see funnel_default_settings('y_axis') for valid options.

label_settings

Optional list of settings for labels, see funnel_default_settings('labels') for valid options.

summary_table_settings

Optional list of settings for the summary table, see funnel_default_settings('summary_table') for valid options. A table shown by show_table has no static plot. Indicators show the MISC chart instead of the table.

tooltip_settings

Optional list of settings for tooltips, see funnel_default_settings('tooltips') for valid options.

width

Optional width of the chart in pixels. If NULL (default), the chart will fill the width of its container.

height

Optional height of the chart in pixels. If NULL (default), the chart will fill the height of its container.

elementId

Optional HTML element ID for the chart.

return_objs

Character vector of object types to return. Valid values are:

  • "html_plot": Interactive htmlwidgets plot

  • "static_plot": Non-interactive SVG plot

  • "limits": Calculated control limits

  • "limit_lines": Control limits across the full range of denominators, for drawing the limit lines (not returned by default)

When summary_table_settings sets show_table without indicators, "static_plot" is omitted by default.

Value

An object of class controlchart containing the interactive plot, static plot, limits data frame, and a function to save the plot. Limits and limit lines include every group, with supplied indicator columns included by name. Multi-indicator limits also include direction-adjusted scores. Limits include the typed key, named after the keys expression and duplicated as key, and tooltip columns by name. Limit lines describe denominator curves and have no observation keys or tooltips. Empty input returns empty limits and limit lines, without plots.


Get default settings for Funnel charts Retrieve the default settings for Funnel charts or a specific settings group.

Description

Get default settings for Funnel charts Retrieve the default settings for Funnel charts or a specific settings group.

Usage

funnel_default_settings(group = NULL)

Arguments

group

Optional. A specific settings group to retrieve. If NULL, all settings groups are returned.

Value

A list of default settings for Funnel charts or the specified settings group.

Examples

#' # Get all default settings for Funnel charts
funnel_default_settings()
# # Get default settings for a specific group
funnel_default_settings("x_axis")

Shiny bindings for wrapper

Description

Output and render functions for using wrapper within Shiny applications and interactive Rmd documents.

Usage

funnelOutput(outputId, width = "100%", height = "400px")

renderfunnel(expr, env = parent.frame(), quoted = FALSE)

Arguments

outputId

output variable to read from

width, height

Must be a valid CSS unit (like '100%', '400px', 'auto') or a number, which will be coerced to a string and have 'px' appended.

expr

An expression that generates a wrapper

env

The environment in which to evaluate expr.

quoted

Is expr a quoted expression (with quote())? This is useful if you want to save an expression in a variable.

Value

Interactive Shiny widget for funnel plot

Interactive Shiny widget for funnel plot


Generate a multi-indicator sigma chart

Description

Delegates to funnel() with indicator columns and a selected group. Calculations, rendering, settings, and interactivity use the native Funnel visual.

Usage

misc(
  data,
  keys,
  numerators,
  denominators,
  indicators,
  target,
  ...,
  misc_settings = NULL
)

Arguments

data

A data frame containing the data for the chart.

keys

A vector or column name representing the categories of the chart.

numerators

A numeric vector or column name representing the numerators for each category.

denominators

A numeric vector or column name representing the denominators for each category.

indicators

A vector or list of vectors identifying indicators.

target

A single value from keys to display. Numeric targets match numeric keys by value.

...

Additional arguments passed to funnel().

misc_settings

Native MISC settings, with group supplied by target. See funnel_default_settings("misc") for valid options.

Value

An object of class controlchart, as returned by funnel(). The plot displays target; limits include every group and separate indicator columns. Request "limit_lines" in return_objs for each indicator's curves.

Examples

comparison <- data.frame(
  organisation = rep(LETTERS[1:4], 2),
  indicator = rep(c("Measure A", "Measure B"), each = 4),
  numerator = c(8, 5, 4, 6, 2, 4, 5, 3),
  denominator = 10
)
misc(
  comparison,
  keys = organisation,
  numerators = numerator,
  denominators = denominator,
  indicators = indicator,
  target = "A",
  return_objs = "limits"
)

Get default settings for multi-indicator sigma charts

Description

Get default settings for multi-indicator sigma charts

Usage

misc_default_settings(group = NULL)

Arguments

group

Optional settings group. If NULL, all groups are returned.

Value

Native Funnel settings used by misc().


Shiny bindings for multi-indicator sigma charts

Description

Shiny bindings for multi-indicator sigma charts

Usage

miscOutput(outputId, width = "100%", height = "400px")

renderMisc(expr, env = parent.frame(), quoted = FALSE)

Arguments

outputId

Output variable to read from.

width, height

Valid CSS dimensions.

expr

An expression that generates a MISC chart.

env

Environment in which to evaluate expr.

quoted

Whether expr is quoted.

Value

An interactive Funnel widget displaying a MISC chart.


Generate interactive SPC chart

Description

Generate interactive SPC chart

Usage

spc(
  data,
  keys,
  numerators,
  denominators,
  groupings,
  indicators = NULL,
  xbar_sds,
  tooltips = NULL,
  labels = NULL,
  aggregations = NULL,
  title = NULL,
  canvas_settings = NULL,
  spc_settings = NULL,
  outlier_settings = NULL,
  nhs_icon_settings = NULL,
  scatter_settings = NULL,
  line_settings = NULL,
  x_axis_settings = NULL,
  y_axis_settings = NULL,
  date_settings = NULL,
  label_settings = NULL,
  summary_table_settings = NULL,
  tooltip_settings = NULL,
  width = NULL,
  height = NULL,
  elementId = NULL,
  return_objs = c("html_plot", "static_plot", "limits")
)

Arguments

data

A data frame containing the data for the chart.

keys

A vector or column name representing the categories (x-axis) of the chart.

numerators

A numeric vector or column name representing the numerators for each category.

denominators

A numeric vector or column name representing the denominators for each category. Optional for i, i_m, i_mm, run and mr charts, which then plot numerators divided by denominators; an indicator whose denominators are all missing plots its numerators.

groupings

A vector or column name representing the grouping for each category.

indicators

A vector or list of vectors representing indicator categories for the summary table.

xbar_sds

A numeric vector or column name representing the x-bar and standard deviation values for each category.

tooltips

A vector or column name, or a list of them, representing additional tooltips for each category. Each is labelled by its name in the list, or else by the expression supplied. NULL for none. Limits include them with their R types, reduced within each key by aggregations$tooltips.

labels

A vector or column name representing the labels for each category. NULL for none.

aggregations

A list of aggregation function names for each field if multiple values are provided for each key. Valid options are:

  • "first": returns the first non-missing value

  • "last": returns the last non-missing value

  • "sum": returns the sum of values

  • "mean": returns the mean of values

  • "min": returns the minimum value

  • "max": returns the maximum value

  • "median": returns the median value

  • "count": returns the count of non-missing values

Defaults to "sum" for numerators and denominators, and "first" otherwise. Every aggregation ignores missing values; an all-missing group has a count of 0 and is otherwise missing. Numerators and denominators are aggregated independently.

title

Optional title to be added to the top of the chart. It can be a character string for the title text only, or a list with the following options:

  • text: Title text (default: NULL)

  • font_size: Font size of the title (default: "16px")

  • font_weight: Font weight of the title (default: "bold")

  • font_family: Font family of the title (default: "'Arial', sans-serif")

  • x: Horizontal (x) position of the title as a percentage (default: "50%")

  • y: Vertical (y) position of the title in pixels (default: 5)

  • text_anchor: Text anchor of the title (default: "middle")

  • dominant_baseline: Dominant baseline of the title (default: "hanging")

  • subtitle: Subtitle text, drawn below the title (default: NULL)

  • subtitle_font_size: Font size of the subtitle (default: "12px")

  • subtitle_font_weight: Font weight of the subtitle (default: "normal")

canvas_settings

Optional list of settings for the canvas, see spc_default_settings('canvas') for valid options.

spc_settings

Optional list of settings for the SPC chart, see spc_default_settings('spc') for valid options.

outlier_settings

Optional list of settings for outliers, see spc_default_settings('outliers') for valid options. Detection switches use the first valid outlier settings after sorting and aggregating keys, separately for each indicator, for both plots and limits.

nhs_icon_settings

Optional list of settings for NHS icons, see spc_default_settings('nhs_icons') for valid options.

scatter_settings

Optional list of settings for scatter points, see spc_default_settings('scatter') for valid options.

line_settings

Optional list of settings for lines, see spc_default_settings('lines') for valid options.

x_axis_settings

Optional list of settings for the x-axis, see spc_default_settings('x_axis') for valid options.

y_axis_settings

Optional list of settings for the y-axis, see spc_default_settings('y_axis') for valid options.

date_settings

Optional list of settings for dates, see spc_default_settings('dates') for valid options.

label_settings

Optional list of settings for labels, see spc_default_settings('labels') for valid options.

summary_table_settings

Optional list of settings for the summary table, see spc_default_settings('summary_table') for valid options. A table shown by show_table has no static plot.

tooltip_settings

Optional list of settings for tooltips, see spc_default_settings('tooltips') for valid options.

width

Optional width of the chart in pixels. If NULL (default), the chart will fill the width of its container.

height

Optional height of the chart in pixels. If NULL (default), the chart will fill the height of its container.

elementId

Optional HTML element ID for the chart.

return_objs

Character vector of object types to return. Valid values are:

  • "html_plot": Interactive htmlwidgets plot

  • "static_plot": Non-interactive SVG plot

  • "limits": Calculated control limits

When indicators are supplied, or summary_table_settings sets show_table, "static_plot" is omitted by default.

Value

An object of class controlchart containing the interactive plot, static plot, limits, and a function to save the plot. Limits are a flat data frame. Supplied indicator columns are included by name. xbar and s limits include each group's size as denominator. The key column is named after the keys expression and retains its type. It is duplicated as key for compatibility. Tooltip columns are included by name. Empty input returns empty limits with typed keys and tooltips, without plots.


Get default settings for SPC charts

Description

Retrieve the default settings for SPC charts or a specific settings group.

Usage

spc_default_settings(group = NULL)

Arguments

group

Optional. A specific settings group to retrieve. If NULL, all settings groups are returned.

Value

A list of default settings for SPC charts or the specified settings group.

Examples

#' # Get all default settings for SPC charts
spc_default_settings()
# # Get default settings for a specific group
spc_default_settings("x_axis")

Shiny bindings for wrapper

Description

Output and render functions for using wrapper within Shiny applications and interactive Rmd documents.

Usage

spcOutput(outputId, width = "100%", height = "400px")

renderSpc(expr, env = parent.frame(), quoted = FALSE)

Arguments

outputId

output variable to read from

width, height

Must be a valid CSS unit (like '100%', '400px', 'auto') or a number, which will be coerced to a string and have 'px' appended.

expr

An expression that generates a wrapper

env

The environment in which to evaluate expr.

quoted

Is expr a quoted expression (with quote())? This is useful if you want to save an expression in a variable.

Value

Interactive Shiny widget for SPC chart

Interactive Shiny widget for funnel plot