Data dictionary
Simulated data, not real patients. FLUID-ICU is an invented study: every value was produced by a computer program with a fixed random seed. It does not describe any real patient, hospital or ICU. Any manuscript written from it must say that the data are simulated and must never be submitted as real research.
SIMULATED DATA: NOT REAL PATIENTS. FLUID-ICU was generated by
R/00_generate_fluid_icu.Rfor teaching.
Study: FLUID-ICU, a multicentre prospective cohort of adults with sepsis admitted to 4 ICUs (ICU A-D), January 2023 to December 2024.
Files: fluid_icu_raw.csv / .xlsx (as sent by the sites, 623 rows, used in the cleaning demo) and fluid_icu_clean.csv / .rds (620 patients, 32 variables, analysis-ready).
Main exposure: cumulative fluid balance at day 3 (cum_fluid_balance_d3_ml_kg, positive_balance_d3). Primary outcome: died_28d (with time_to_event_28d).
Pre-specified confounders: age, sofa, lactate_mmol_l, vasopressor, mech_vent, ckd. Effect modifier: heart_failure.
In the clean file a missing value is an empty cell (CSV) or NA (R). Missing code (raw) gives how the raw file recorded a missing value. Allowed range is the plausibility check used in R/01_clean.R; values outside it are set to missing and queried. DERIVED variables are computed in cleaning and do not exist in the raw file.
| # | Variable | Label | Type | Units / codes | Allowed range | Missing code (raw) | Notes |
|---|---|---|---|---|---|---|---|
| 1 | study_id |
Study identifier | Character (ID) | FLU-001 … FLU-620 | Unique | None allowed | Raw column ‘Study ID’. Raw file has 3 IDs entered twice (exact duplicate rows); removed in cleaning. |
| 2 | site |
Recruiting ICU | Categorical (4 levels) | ICU A / ICU B / ICU C / ICU D | 4 levels | None allowed | Raw ‘Site’ typed several ways (icu a, ICU-A, ICUA); standardised. ICU C reported lactate in mg/dL. |
| 3 | admission_date |
Date of ICU admission (enrolment) | Date | YYYY-MM-DD | 2023-01-01 to 2024-12-31 | None allowed | Raw ‘Admission Date’ mixes YYYY-MM-DD, DD/MM/YYYY and DD-Mon-YYYY. |
| 4 | age |
Age | Numeric (integer) | Years | 18 to 110 | Blank | Raw ‘Age’. One impossible value (210) set to missing; query to site. |
| 5 | sex |
Sex | Categorical (2 levels) | Female / Male | 2 levels | None allowed | Raw ‘Sex’ has 8-9 spellings (M, m, male, F, f, female, ’ Female’). |
| 6 | weight_kg |
Body weight on admission | Numeric | kg (1 decimal) | 30 to 250 | Blank | Raw ‘Weight (kg)’. One impossible value (7) set to missing. Used to compute balance in ml/kg. |
| 7 | diabetes |
Diabetes mellitus | Binary | No / Yes | No, Yes | None | Raw codes Yes/No/Y/N/yes/no/1/0 (ICU B sends 1/0). |
| 8 | ckd |
Chronic kidney disease | Binary | No / Yes | No, Yes | None | Pre-specified confounder. Mixed Yes/No coding in raw file. |
| 9 | heart_failure |
Chronic heart failure | Binary | No / Yes | No, Yes | None | Pre-specified effect modifier (Q1). Mixed coding in raw file. |
| 10 | hypertension |
Hypertension | Binary | No / Yes | No, Yes | None | Mixed coding in raw file. |
| 11 | infection_source |
Source of infection | Categorical (5 levels) | Respiratory / Urinary / Abdominal / Skin/soft tissue / Other | 5 levels | None | Ordered as listed for tables. |
| 12 | sofa |
SOFA score on ICU admission | Numeric (integer score) | Points | 0 to 24 | None | Severity; pre-specified confounder. Median 7 (IQR 5-9). |
| 13 | apache_ii |
APACHE II score (first 24 h) | Numeric (integer score) | Points | 0 to 71 | -99 | Raw ‘APACHE II’; 6 values coded -99 = not recorded. |
| 14 | lactate_mmol_l |
Blood lactate on admission | Numeric | mmol/L (1 decimal) | 0.1 to 30 | Blank, 999, -99 | ~15% missing, more often in less severe patients (MAR). ICU C values in raw file are mg/dL (x 9.01): divided by 9.01 in cleaning. |
| 15 | map_mmhg |
Mean arterial pressure on admission | Numeric (integer) | mmHg | 20 to 200 | 999 | Raw ‘MAP (mmHg)’; 4 values coded 999. |
| 16 | vasopressor |
Vasopressor on admission | Binary | No / Yes | No, Yes | None | Pre-specified confounder. Mixed coding in raw file. |
| 17 | mech_vent |
Invasive mechanical ventilation on admission | Binary | No / Yes | No, Yes | None | Raw ‘Mech vent’. Pre-specified confounder. |
| 18 | fluid_in_d1_ml |
Total fluid input, ICU day 1 | Numeric (integer) | ml | 0 to 20000 | Blank | All intravenous and enteral fluid incl. drugs and nutrition. Raw ‘Fluid in D1 (ml)’. |
| 19 | fluid_out_d1_ml |
Total fluid output, ICU day 1 | Numeric (integer) | ml | 0 to 20000 | Blank | Urine, drains, ultrafiltration; insensible losses not included. |
| 20 | fluid_in_d2_ml |
Total fluid input, ICU day 2 | Numeric (integer) | ml | 0 to 20000 | Blank | |
| 21 | fluid_out_d2_ml |
Total fluid output, ICU day 2 | Numeric (integer) | ml | 0 to 20000 | Blank | One negative value (impossible) in raw file set to missing. |
| 22 | fluid_in_d3_ml |
Total fluid input, ICU day 3 | Numeric (integer) | ml | 0 to 20000 | Blank | |
| 23 | fluid_out_d3_ml |
Total fluid output, ICU day 3 | Numeric (integer) | ml | 0 to 20000 | Blank | |
| 24 | cum_fluid_balance_d3_ml_kg |
Cumulative fluid balance, ICU days 1-3 | Numeric (DERIVED) | ml/kg (1 decimal) | -150 to 250 | Derived | = (sum of fluid in d1-3 - sum of fluid out d1-3) / weight_kg. Not in the raw file. Missing for 2 patients (weight or output missing). Main exposure (Q2, Q3: per 10 ml/kg). |
| 25 | positive_balance_d3 |
Positive cumulative fluid balance at day 3 | Binary (DERIVED) | No / Yes | No, Yes | Derived | Yes if cum_fluid_balance_d3_ml_kg > 0. Main exposure for Q1 and Q5. |
| 26 | aki_stage |
Acute kidney injury, maximum KDIGO stage, ICU days 1-7 | Ordinal (integer) | 0 = none, 1, 2, 3 | 0 to 3 | None | Raw ‘AKI stage (KDIGO)’. |
| 27 | aki_any |
Any acute kidney injury (KDIGO stage >= 1) | Binary (DERIVED) | No / Yes | No, Yes | Derived | Yes if aki_stage >= 1. Outcome for Q2. |
| 28 | rrt |
Renal replacement therapy by day 28 | Binary | No / Yes | No, Yes | None | Mixed coding in raw file. |
| 29 | vent_free_days_28 |
Ventilator-free days to day 28 | Numeric (integer) | Days | 0 to 28 | None | Days alive and free of invasive ventilation to day 28; 0 if died; 28 if never ventilated and alive. Raw ‘VFD 28’. Outcome for Q3. |
| 30 | icu_los_days |
ICU length of stay | Numeric | Days (1 decimal) | > 0 | None | Right-skewed. For patients who died, stay ends at death. Outcome for Q5 (survivors). |
| 31 | died_28d |
Death from any cause by day 28 | Binary | No / Yes | No, Yes | None | Primary outcome (Q1, Q4). Mixed coding in raw file. |
| 32 | time_to_event_28d |
Time from ICU admission to death or censoring | Numeric (integer) | Days | 1 to 28 | None | Death day if died; 28 (censored) if alive at day 28. Use with died_28d for Kaplan-Meier and Cox. Raw ‘Time to event 28d (days)’. |
Column names in the raw file are spreadsheet-style (e.g. Weight (kg), MAP (mmHg)); janitor::clean_names() plus four renames give the names above (see R/01_clean.R, step 1).