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).
Format
A data frame with 13 rows and 7 columns:
stat_labelRow 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 viacol_spec(visible = FALSE).placebo,drug_50,drug_100Per-arm cell text (
"n (pct)"on rate rows,"(lower, upper)"on CI rows).groupidInteger 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_labelCharacter 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 withgroup_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
Response Placebo
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 MISSING 83 (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)