Skip to contents

Pre-summarised efficacy table. Per-arm counts of best overall response (BOR) per CDISC category, plus derived ORR, CBR, and DCR rate rows each followed by an exact (Clopper-Pearson) 95% CI row. Four sections (Best Overall Response, Objective Response Rate, Clinical Benefit Rate, Disease Control Rate) are encoded via the groupid + group_label pair so a single usage = "group" / group_display = "header_row" on group_label synthesises one bold section band per groupid block; the body rows render below each band, auto-indented one level by the "header_row" section itself (the stub needs no indent — the section supplies it).

Usage

cdisc_eff_resp

Format

A data frame with 13 rows and 7 columns:

stat_label

Row label ("CR", "PR", "SD", "NON-CR/NON-PD", "PD", "NE", "MISSING", "ORR (CR + PR)", "95% CI (Clopper-Pearson)", "CBR (CR + PR + SD)", "95% CI (Clopper-Pearson)", "DCR (CR + PR + SD + NON-CR/NON-PD)", "95% CI (Clopper-Pearson)").

row_type

"category" for BOR categorical rows, "derived" for ORR / CBR / DCR rate rows, "ci" for the paired confidence-interval rows. Hide via col_spec(visible = FALSE).

placebo, drug_50, drug_100

Per-arm cell text ("n (pct)" on rate rows, "(lower, upper)" on CI rows).

groupid

Integer section id (1 = Best Overall Response, 2 = Objective Response Rate, 3 = Clinical Benefit Rate, 4 = Disease Control Rate). Hide via col_spec(visible = FALSE); used as the section sort / partition key.

group_label

Character section label, repeating across every row of its groupid block ("Best Overall Response" x7, "Objective Response Rate" x2, ...). Drives the engine's usage = "group" header_row synthesis when paired with group_display = "header_row".

Source

Derived in data-raw/bundle-demo.R from pharmaverseadam::adrs_onco filtered to PARAMCD == "BOR".

See also

cdisc_eff_n for BigN denominators.

Examples

# 95% efficacy pattern: four bold section bands (Best Overall
# Response / Objective Response Rate / Clinical Benefit Rate /
# Disease Control Rate), each followed by indented stat rows. The
# source already ships in the right display order, so no sort step
# is needed; `group_label` repeats across every row of its section
# so the engine's `header_row` mode emits exactly one band per
# section.
ne <- stats::setNames(cdisc_eff_n$n, cdisc_eff_n$arm_short)
tabular(
  cdisc_eff_resp,
  titles = c(
    "Table 14.2.1",
    "Best Overall Response and Response Rates",
    "Efficacy Evaluable Population"
  )
) |>
  cols(
    group_label = col_spec(usage = "group", group_display = "header_row"),
    stat_label  = col_spec(label = "Response"),
    groupid     = col_spec(visible = FALSE),
    row_type    = col_spec(visible = FALSE),
    placebo     = col_spec(
      label = "Placebo\nN={ne['placebo']}",
      align = "decimal"
    ),
    drug_50     = col_spec(
      label = "Drug 50\nN={ne['drug_50']}",
      align = "decimal"
    ),
    drug_100    = col_spec(
      label = "Drug 100\nN={ne['drug_100']}",
      align = "decimal"
    )
  )

 

Table 14.2.1

Best Overall Response and Response Rates

Efficacy Evaluable Population

 

ResponsePlacebo
N=86
Drug 50
N=84
Drug 100
N=84
Best Overall Response
CR 1 ( 1.2)   1 ( 1.2)   1 ( 1.2)  
PR 1 ( 1.2)   0          0         
SD 1 ( 1.2)   0          0         
NON-CR/NON-PD 0          0          1 ( 1.2)  
PD 0          0          1 ( 1.2)  
NE 0          1 ( 1.2)   0         
MISSING83 (96.5)  82 (97.6)  81 (96.4)  
 
Objective Response Rate
ORR (CR + PR) 2   (2.3)  1   (1.2)  1   (1.2) 
95% CI (Clopper-Pearson)( 0.3, 8.1)( 0.0, 6.5)( 0.0, 6.5)
 
Clinical Benefit Rate
CBR (CR + PR + SD) 3   (3.5)  1   (1.2)  1   (1.2) 
95% CI (Clopper-Pearson)( 0.7, 9.9)( 0.0, 6.5)( 0.0, 6.5)
 
Disease Control Rate
DCR (CR + PR + SD + NON-CR/NON-PD) 3   (3.5)  1   (1.2)  2   (2.4) 
95% CI (Clopper-Pearson)( 0.7, 9.9)( 0.0, 6.5)( 0.3, 8.3)