Biomedical writing follows a durable convention: Introduction, Methods, Results, and Discussion. The structure is not an aesthetic choice — it mirrors the order in which the reader can evaluate your work. You motivate the question, describe exactly what you did, present the findings, and only then interpret them. Pre-registration and statistical analysis plans make the Methods section possible to write before the Results exist, and the five-step template taught throughout this site feeds directly into the Methods paragraph for every inferential test.
Every result worth reporting is reported with both a point estimate and an interval. A p-value alone is rarely useful: it tells you whether the data are surprising under the null, but not how large the effect is or how much uncertainty you have about its magnitude. A concluding statement that will not embarrass you in five years reads like this:
Mean arterial pressure was lower in the treatment group than in the placebo group by 6.4 mmHg (95% CI: 2.1 to 10.7; p = 0.004; Cohen’s d = 0.42).
Notice the three things: the direction and magnitude of the effect, the interval, and — optionally — a standardised effect size. Nothing else is needed for the reader to think for themselves.
Two rules: one figure, one idea, and no figure without a caption
that could stand alone. A caption tells the reader what the figure
shows (“Forest plot of odds ratios for each arm”), what the units
are, how many observations contribute, and — for anything inferential —
what the error bars or bands represent (95% CI? SD? SE of the mean?).
Use theme_minimal() with the site accent palette where colour is
discretionary, and avoid colour-only encoding: pair colour with shape or
linetype so colourblind readers can follow along.
Tables are rarely the best way to communicate a result that a plot can
show, but some results genuinely need them — baseline characteristics,
multi-row regression tables, multiple-imputation pooling summaries. Use
gtsummary for all three. The point of a table is the contrast between
rows, so put the thing you want the reader to compare next to itself and
round numbers to sensible precision (three significant figures is
usually plenty; two for proportions).
R and its packages are freely maintained by volunteers who deserve citations. At the foot of every report, include something like:
Analysis was performed in R 4.4.1 (R Core Team 2024) using the
tidyverse(Wickham et al. 2019),lme4(Bates et al. 2015), andrstanarm(Goodrich et al. 2024) packages.
You can get the correct citation for any package with
citation("pkgname"). The bibliography it returns is already in BibTeX
form.
Every substantive biomedical study has a reporting guideline. Use them; reviewers will use them whether you do or not.
A checklist filled in as you write is much easier than one filled in at the end. Many journals now require a signed checklist as a supplementary file; bookmark the above now.
The document you submit should come from a single render of a single
source. If the numbers in the text are not the numbers in the
sessionInfo() block at the foot of the same file, the analysis is
not reproducible. Quarto, renv, and a version-controlled repository
are together enough to get this right; the targets package is the
next step up for anything large enough to need a dependency graph.