---- 0) Install & load exact packages (no tidyverse meta) ----
needed <- c(
"readxl","dplyr","tidyr","ggplot2","stringr",
"nlme","emmeans","officer","flextable","broom",
"geepack","sandwich","clubSandwich","hms"
)
to_get <- setdiff(needed, rownames(installed.packages()))
if (length(to_get)) install.packages(to_get)
suppressPackageStartupMessages({
library(readxl); library(dplyr); library(tidyr); library(ggplot2); library(stringr)
library(nlme); library(emmeans); library(officer); library(flextable); library(broom)
library(geepack); library(sandwich); library(clubSandwich)
})