Format the content of a correlation table

Description

Mostly for internal use, but can be useful when users supply a function to the method argument of datasummary_correlation.

Usage

datasummary_correlation_format(
  x,
  fmt,
  leading_zero = FALSE,
  diagonal = NULL,
  upper_triangle = NULL,
  stars = FALSE
)

Arguments

x square numeric matrix
fmt

how to format numeric values: integer, user-supplied function, or modelsummary function.

  • Integer: Number of decimal digits

  • User-supplied functions:

    • Any function which accepts a numeric vector and returns a character vector of the same length.

  • modelsummary functions:

    • fmt = fmt_significant(2): Two significant digits (at the term-level)

    • fmt = fmt_sprintf(“%.3f”): See ?sprintf

    • fmt = fmt_identity(): unformatted raw values

leading_zero boolean. If FALSE, leading zeros are removed
diagonal character or NULL. If character, all elements of the diagonal are replaced by the same character (e.g., "1").
upper_triangle character or NULL. If character, all elements of the upper triangle are replaced by the same character (e.g., "" or ".").
stars

to indicate statistical significance

  • FALSE (default): no significance stars.

  • TRUE: c(“+” = .1, “” = .05, ”” = .01, ”” = 0.001)

  • Named numeric vector for custom stars such as c(’*’ = .1, ‘+’ = .05)

  • Note: a legend will not be inserted at the bottom of the table when the estimate or statistic arguments use "glue strings" with {stars}.

Examples

library("modelsummary")

library(modelsummary)

dat <- mtcars[, c("mpg", "hp", "disp")]

cor_fun <- function(x) {
  out <- cor(x, method = "kendall")
  datasummary_correlation_format(
    out,
    fmt = 2,
    upper_triangle = "x",
    diagonal = ".")
}

datasummary_correlation(dat, method = cor_fun)
mpg hp disp
mpg . x x
hp -.74 . x
disp -.77 .67 .