## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
library(respondeR)

## -----------------------------------------------------------------------------
responder_analysis(sample_responder_data, mid = 1, method = "individual")

## -----------------------------------------------------------------------------
paradox <- data.frame(
  study = c("A", "B"), change_e = c(2.5, 0.5), sd_e = 1, n_e = c(400, 20),
  change_c = c(2.0, 0.0), sd_c = 1, n_c = c(20, 400)
)
responder_rd_individual(paradox, mid = 1)[, c("study", "rd")]
as.data.frame(responder_analysis(paradox, mid = 1,
  method = c("individual", "weighted")))[, c("method", "rd")]

## -----------------------------------------------------------------------------
responder_analysis(sample_responder_data, mid = 1, control = "median")

## -----------------------------------------------------------------------------
ind <- responder_analysis(sample_responder_data, mid = 1, method = "individual")
responder_sof(ind, control_risk = c(0.1, 0.3))

## -----------------------------------------------------------------------------
cles <- responder_cles(sample_responder_data)
c(cles = cles$cles, lb = cles$cles_lb, ub = cles$cles_ub)

## -----------------------------------------------------------------------------
responder_analysis(sample_responder_data, mid = 1, method = "smd")

## -----------------------------------------------------------------------------
near_identical <- data.frame(
  study = 1:4, change_e = c(1, 1.01, 0.99, 1), sd_e = 1, n_e = 100,
  change_c = 0, sd_c = 1, n_c = 100
)
sapply(c("wald", "hksj", "hksj_adhoc"), function(ci) {
  r <- responder_analysis(near_identical, mid = 0.5, method = "individual",
                          pooling = "random", ci_method = ci)
  r$rd_ub - r$rd_lb
})

## ----fig.width = 6, fig.height = 3.6, fig.alt = "Pooled risk difference across MID thresholds"----
plot(responder_curve(sample_responder_data, mids = seq(0, 2, by = 0.25)), at = 1)

## -----------------------------------------------------------------------------
final <- data.frame(
  study = c("A", "B"), change_e = c(2.6, 3.1), sd_e = c(1.9, 2.1), n_e = c(60, 45),
  change_c = c(3.8, 4.2), sd_c = c(2.0, 2.2), n_c = c(58, 47)
)
# Proportion with a final pain score of 3 or less (lower is better).
responder_analysis(final, mid = 3, direction = "lower", method = "individual")

