| Step | Rows | File |
|---|---|---|
| raw | 235 | data/raw/licorice_gargle.csv |
| clean (one row per patient) | 235 | data/derived/clean.rds |
| long (one row per patient per assessment) | 940 | assessments_long(clean) |
2 Data and lineage
2.1 Source
The data are one file, licorice_gargle.csv, emailed by the PI’s fellow. It is the public version of the trial data from the medicaldata R package, with one row per patient. The codebook is notes/2026-10-16-codebook.md. The file’s date of receipt and its MD5 checksum are in data/README.md. The raw file is never edited, and scripts/02_make_analysis_data.R refuses to run if its bytes change (D-019).
Cleaning (clean_raw()) checks every column against the codebook. An unexpected code, an out-of-range or fractional score, or text in a numeric column stops the pipeline and names the rows. The delivered file passed every check. The file has no patient identifier, so each patient’s identifier is their row number in the raw file.
2.2 Lineage
Each step is a function in R/ with tests in tests/testthat/.
The file has 235 patients: 117 randomized to sugar water and 118 to licorice. The codebook gives an enrollment count of 236, so 1 enrolled patient is not in the file. Why is an open question for the client (Chapter 1). If a randomized patient is missing, the analysis is not fully intention to treat.
2.3 Missing data
Any missing score is treated as missing, and each analysis uses the patients observed at that assessment (complete case; D-010, D-015).
| Assessment | Sugar water | Licorice | Missing overall |
|---|---|---|---|
| PACU 30 min | 1 of 117 | 1 of 118 | 0.9% |
| PACU 90 min | 1 of 117 | 1 of 118 | 0.9% |
| 4 h after surgery | 1 of 117 | 1 of 118 | 0.9% |
| First postoperative morning | 1 of 117 | 1 of 118 | 0.9% |
Missing outcomes come entirely from 2 patients (1 on sugar water, 1 on licorice) who have no post-operative data at all; every other patient has all four scores. The intake notes anticipated patients with no post-operative data (“a couple pts no post-op data”). Why they have none is an open question in Chapter 1. At most 0.9% of patients are missing any one assessment. That is within the plan’s five-percent trigger for revisiting the missing-data approach (D-015), so the complete-case analyses stand.
2.3.1 Best- and worst-case bounds for the primary outcome
The plan bounds the primary odds ratio by filling in every missing primary outcome among the patients in the file, in the way most and least favourable to licorice (Chapter 3).
| Bound | Outcomes filled in | Absent patients added | Odds ratio (95% CI) | p-value |
|---|---|---|---|---|
| Best case for licorice | 2 | 0 | 0.39 (0.22 to 0.72) | p = 0.002 |
| Worst case for licorice | 2 | 0 | 0.43 (0.24 to 0.78) | p = 0.005 |
| Worst case for licorice, with absent patients (post hoc) | 2 | 1 | 0.45 (0.25 to 0.81) | p = 0.008 |
Among the patients in the file, the best case for licorice gives OR 0.39, 95% CI 0.22 to 0.72 and the worst case OR 0.43, 95% CI 0.24 to 0.78. The complete-case estimate (Chapter 6) is OR 0.41, 95% CI 0.22 to 0.74. Both bounds keep the confidence interval below one, so the missing outcomes of patients in the file cannot change the primary conclusion.
These bounds do not cover the 1 enrolled patient absent from the file. Added after results were seen (post hoc; D-021): adding that patient to the licorice arm with a sore throat, on top of the in-file worst case, gives OR 0.45, 95% CI 0.25 to 0.81. The confidence interval stays below one, so the primary conclusion holds even then.
No warnings from the model fits in this chapter.