R/hist_CI.R

Defines functions hist_CI

Documented in hist_CI

#' Histogram with Confidence Interval
#'
#' Plots a histogram with confidence interval.
#'
#' @param .data The data.
#' @param alpha Alpha value. Defaults to 0.1.
#' @param main Graph title.
#' @param xlab Graph x label.
#' @param breaks Histogram breaks. Defaults to 20.
#'
#' @export

hist_CI <- function(.data, alpha = .1, main = "Histogram", xlab = "Data and (1-alpha)% Confidence Interval", breaks = 20) {
  graphics::hist(.data,
    breaks = breaks, main = main, xlab = xlab,
    col = "light blue"
  )

  if(anyNA(.data)){
    print("Data has missing values. Missing values will be omitted.")
    .data <- stats::na.omit(.data)
  }
  CIlow <- round(stats::quantile(.data, alpha / 2), 2)
  CIhi <- round(stats::quantile(.data, 1 - alpha / 2), 2)
  graphics::abline(v = CIlow, col = "red")
  graphics::abline(v = CIhi, col = "red")
  adjlow <- 0.01 + (CIlow - min(.data)) / (max(.data) - min(.data))
  adjhi <- -0.009 + (CIhi - min(.data)) / (max(.data) - min(.data))
  graphics::mtext(CIlow, 1, adj = adjlow, 0.2, col = "red")
  graphics::mtext(CIhi, 1, adj = adjhi, 0.2, col = "red")
  graphics::mtext("alpha = ", 3, adj = 0.45, col = "red")
  graphics::mtext(alpha, 3, adj = 0.6, col = "red")
  ave <- round(mean(.data), 2)
  graphics::mtext("mean = ", 1, adj = .42, 1.8, col = "red")
  graphics::mtext(ave, 1, adj = 0.61, 1.8, col = "red")
}
dnepple/tprstats documentation built on April 5, 2025, 6:18 a.m.