The column schema that imurun targets for each of its two inputs.
Format
A named list of two character vectors (observations, locations),
each giving the required column names in schema order.
Details
imurun simplifies imuGAP's inputs: rather than a separate populations
sheet, each observation row carries its own
loc_id/year/age_min/age_max/dose, and imurun constructs the
imuGAP populations from the observations (see build_populations()). This
list gives the column names that are expected once header aliases
(see IMURUN_HEADER_ALIASES) have been applied and before types and values
are enforced.
Each element of IMURUN_SCHEMA describes one sheet/input:
observations: One row per observation. Columns:obs_id(a unique identifier – the loader assigns one automatically if you omit it, so it is not a user column),loc_id(must exist in locations),year(positive integer observation year),age_minandage_max(positive integers giving the inclusive age span the count was drawn over, withage_min <= age_max),dose(integer in1:max_dose),positive(non-negative integer count of positive results),sample_n(positive integer sample size, withpositive <= sample_n). Optional:censored(NAor1).A single-age observation may be written with one
agecolumn instead ofage_min/age_max; the loader expands it toage_min = age_max = age(seeexpand_obs_age()).locations: The location hierarchy. Required columns:loc_id(unique identifier),parent_id(the parent'sloc_id, orNAfor the single root).