R Markdown

# load tidyverse (which loads dplyr, tibble, tidyr, etc.)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
### Bais (2014) Data ###

# Baseline characteristics (note that the study appears to report two active groups)
bais_baseline <- tribble(
  ~study,      ~group,      ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,  ~lateralisation, ~target_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Bais 2014", "Active L",  16,  16, 37.2,         14.9,       37.3,         11.6,      56.25,       62.50,    "L-TPJ", "Uni_L",       "10-20EEG",    "LF-RTMS",   240,         12,              "High",           "Coil",
  "Bais 2014", "Active Bi", 15,  NA, 33.9,          9.2,        NA,           NA,        53.33,       NA,       "Bi-TPJ", "Bi-Seq-L/R",   NA,            NA,          NA,          NA,             NA, NA
)

# Active outcomes – first block (labeled “Active L”)
bais_active_L <- tribble(
  ~study,      ~group,      ~measure,  ~timepoint, ~mean,   ~sd,    ~n,
  "Bais 2014", "Active L",  "PANSS-P", "T0",       16.31,   4.76,   NA,
  "Bais 2014", "Active L",  "PANSS-N", "T0",       15.12,   4.70,   NA,
  "Bais 2014", "Active L",  "PANSS-G", "T0",       30.12,   8.85,   NA,
  "Bais 2014", "Active L",  "AHRS",    "T0",       28.31,   5.67,   NA,
  "Bais 2014", "Active L",  "PANAS-P", "T0",       28.79,   10.60,  14,
  "Bais 2014", "Active L",  "PANAS-N", "T0",       21.50,   7.98,   NA,
  "Bais 2014", "Active L",  "PANSS-P", "T1",       15.06,   5.64,   NA,
  "Bais 2014", "Active L",  "PANSS-N", "T1",       14.50,   4.40,   NA,
  "Bais 2014", "Active L",  "PANSS-G", "T1",       28.38,   9.04,   NA,
  "Bais 2014", "Active L",  "AHRS",    "T1",       26.13,   5.55,   NA,
  "Bais 2014", "Active L",  "PANAS-P", "T1",       24.47,   9.67,   14,
  "Bais 2014", "Active L",  "PANAS-N", "T1",       20.13,   8.40,   14
)

# Active outcomes – second block (labeled “Active Bi”)
bais_active_Bi <- tribble(
  ~study,      ~group,      ~measure,  ~timepoint, ~mean,   ~sd,
  "Bais 2014", "Active Bi", "PANSS-P", "T0",       15.80,   3.88,
  "Bais 2014", "Active Bi", "PANSS-N", "T0",       13.67,   4.67,
  "Bais 2014", "Active Bi", "PANSS-G", "T0",       27.67,   6.20,
  "Bais 2014", "Active Bi", "AHRS",    "T0",       25.60,   6.73,
  "Bais 2014", "Active Bi", "PANAS-P", "T0",       25.67,   10.10,
  "Bais 2014", "Active Bi", "PANAS-N", "T0",       23.40,   10.53,
  "Bais 2014", "Active Bi", "PANSS-P", "T1",       15.21,   4.14,
  "Bais 2014", "Active Bi", "PANSS-N", "T1",       14.00,   4.95,
  "Bais 2014", "Active Bi", "PANSS-G", "T1",       26.71,   5.81,
  "Bais 2014", "Active Bi", "AHRS",    "T1",       23.27,   7.09,
  "Bais 2014", "Active Bi", "PANAS-P", "T1",       19.93,   8.08,
  "Bais 2014", "Active Bi", "PANAS-N", "T1",       21.80,   11.20
)

# Sham outcomes for Bais (2014)
bais_sham <- tribble(
  ~study,      ~group, ~measure,  ~timepoint, ~mean,   ~sd,    ~n,
  "Bais 2014", "Sham", "PANSS-P", "T0",       16.69,   4.60,   NA,
  "Bais 2014", "Sham", "PANSS-N", "T0",       16.63,   5.57,   NA,
  "Bais 2014", "Sham", "PANSS-G", "T0",       32.50,   9.41,   NA,
  "Bais 2014", "Sham", "AHRS",    "T0",       24.75,   5.97,   NA,
  "Bais 2014", "Sham", "PANAS-P", "T0",       21.08,   6.97,   14,
  "Bais 2014", "Sham", "PANAS-N", "T0",       29.43,   10.30,  13,
  "Bais 2014", "Sham", "PANSS-P", "T1",       16.56,   3.88,   NA,
  "Bais 2014", "Sham", "PANSS-N", "T1",       16.81,   5.04,   NA,
  "Bais 2014", "Sham", "PANSS-G", "T1",       31.56,   7.50,   NA,
  "Bais 2014", "Sham", "AHRS",    "T1",       21.63,   9.95,   NA,
  "Bais 2014", "Sham", "PANAS-P", "T1",       19.14,   7.16,   14,
  "Bais 2014", "Sham", "PANAS-N", "T1",       25.43,   10.60,  13
)

### Barr (2011) Data ###

# Baseline characteristics
barr2011_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Barr 2011", "Active", 12,  12, 47.21,       12.80,      NA,           NA,         50,          NA,         "Bi-DLPFC", "Neuronav",    "Bi-Seq-Cnt",    "HF-RTMS",   25,         1,              "Single",         "Deg-90"
)

# Active outcomes – accuracy (CT %) and reaction time (RT ms)
barr2011_active <- tribble(
  ~study,      ~group, ~measure,       ~timepoint, ~mean,    ~sd,     ~days,
  # CT % measures at T0
  "Barr 2011", "Active", "1-back CT %", "T0",       79.05,   15.16,   0,
  "Barr 2011", "Active", "2-back CT %", "T0",       66.25,   11.58,   0,
  "Barr 2011", "Active", "3-back CT %", "T0",       48.38,   16.08,   0,
  # CT % measures at T1
  "Barr 2011", "Active", "1-back CT %", "T1",       76.22,   21.07,   0.0174,
  "Barr 2011", "Active", "2-back CT %", "T1",       62.95,   24.11,   0.0174,
  "Barr 2011", "Active", "3-back CT %", "T1",       48.55,   15.40,   0.0174,
  # Reaction time measures at T0
  "Barr 2011", "Active", "1-back RT ms", "T0",      945.02,  276.11,  0,
  "Barr 2011", "Active", "2-back RT ms", "T0",      1130.73, 434.34,  0,
  "Barr 2011", "Active", "3-back RT ms", "T0",      1114.51, 277.71,  0,
  # Reaction time measures at T1
  "Barr 2011", "Active", "1-back RT ms", "T1",      874.35,  277.71,  0.0174,
  "Barr 2011", "Active", "2-back RT ms", "T1",      1012.17, 340.66,  0.0174,
  "Barr 2011", "Active", "3-back RT ms", "T1",      937.35,  322.09,  0.0174
)

# Sham outcomes for Barr (2011)
barr2011_sham <- tribble(
  ~study,      ~group, ~measure,       ~timepoint, ~mean,   ~sd,
  "Barr 2011", "Sham", "1-back CT %", "T0",       77.33,  18.31,
  "Barr 2011", "Sham", "2-back CT %", "T0",       72.46,  22.99,
  "Barr 2011", "Sham", "3-back CT %", "T0",       59.99,  20.84,
  "Barr 2011", "Sham", "1-back CT %", "T1",       69.42,  29.75,
  "Barr 2011", "Sham", "2-back CT %", "T1",       79.61,  16.72,
  "Barr 2011", "Sham", "3-back CT %", "T1",       57.46,  15.97,
  "Barr 2011", "Sham", "1-back RT ms", "T0",      754.36,  192.41,
  "Barr 2011", "Sham", "2-back RT ms", "T0",      865.01,  245.49,
  "Barr 2011", "Sham", "3-back RT ms", "T0",      938.66,  236.39,
  "Barr 2011", "Sham", "1-back RT ms", "T1",      796.48,  192.70,
  "Barr 2011", "Sham", "2-back RT ms", "T1",      902.22,  288.48,
  "Barr 2011", "Sham", "3-back RT ms", "T1",      929.60,  252.02
)

### Barr (2013) Data ###

# Baseline characteristics
barr2013_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Barr 2013", "Active", 13,  12, 41.15,       12.01,      49,           12.42,      53.85,       78.57,    "Bi-DLPFC",   "Neuronav",    "Bi-Seq-Cnt",    "HF-RTMS",   500,        20,             "low",            "Deg-90"
)

# Active outcomes: accuracy and reaction time
barr2013_active <- tribble(
  ~study,      ~group, ~measure,                           ~timepoint, ~mean,   ~sd,     ~days,
  # Accuracy measures
  "Barr 2013", "Active", "1-back CT %",                    "T0",       78.80,   24.70,   0,
  "Barr 2013", "Active", "3-back CT %",                    "T0",       40.06,   18.57,   0,
  "Barr 2013", "Active", "1-back CT %",                    "T1",       80.04,   24.61,   28,
  "Barr 2013", "Active", "3-back CT %",                    "T1",       49.86,   23.50,   28,
  # Reaction time measures
  "Barr 2013", "Active", "1-back RT ms (Target Correct)",  "T0",       935.34,  244.37,  0,
  "Barr 2013", "Active", "1-back RT ms (Non Target Correct)","T0",       879.74,  236.88,  0,
  "Barr 2013", "Active", "3-back RT ms (Target Correct)",  "T0",       1072.95, 313.88,  0,
  "Barr 2013", "Active", "3-back RT ms (Non Target Correct)","T0",      1015.10, 341.25,  0,
  "Barr 2013", "Active", "1-back RT ms (Target Correct)",  "T1",       844.06,  320.88,  28,
  "Barr 2013", "Active", "1-back RT ms (Non Target Correct)","T1",      768.57,  258.42,  28,
  "Barr 2013", "Active", "3-back RT ms (Target Correct)",  "T1",       898.29,  329.57,  28,
  "Barr 2013", "Active", "3-back RT ms (Non Target Correct)","T1",      916.59,  347.24,  28
)

# Sham outcomes for Barr (2013)
barr2013_sham <- tribble(
  ~study,      ~group, ~measure,                           ~timepoint, ~mean,   ~sd,     ~days,
  "Barr 2013", "Sham", "1-back CT %",                    "T0",       65.94,   23.33,   0,
  "Barr 2013", "Sham", "3-back CT %",                    "T0",       36.02,   24.34,   0,
  "Barr 2013", "Sham", "1-back CT %",                    "T1",       73.37,   19.42,   28,
  "Barr 2013", "Sham", "3-back CT %",                    "T1",       33.33,   20.34,   28,
  "Barr 2013", "Sham", "1-back RT ms (Target Correct)",  "T0",       817.21,  232.82,  0,
  "Barr 2013", "Sham", "1-back RT ms (Non Target Correct)","T0",       776.15,  229.20,  0,
  "Barr 2013", "Sham", "3-back RT ms (Target Correct)",  "T0",       853.84,  301.86,  0,
  "Barr 2013", "Sham", "3-back RT ms (Non Target Correct)","T0",       792.03,  276.50,  0,
  "Barr 2013", "Sham", "1-back RT ms (Target Correct)",  "T1",       754.08,  206.14,  28,
  "Barr 2013", "Sham", "1-back RT ms (Non Target Correct)","T1",       675.02,  151.99,  28,
  "Barr 2013", "Sham", "3-back RT ms (Target Correct)",  "T1",       805.32,  314.34,  28,
  "Barr 2013", "Sham", "3-back RT ms (Non Target Correct)","T1",       767.15,  267.11,  28
)

### Barr (2012) Data ###

# Baseline characteristics
barr2012_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Barr 2012", "Active", 13,  12, 40.46,       12.21,      47.92,       12.78,      53.84,       83.33,    "Bi-DLPFC",   "Neuronav",    "Bi-Seq-Cnt",    "HF-RTMS",   500,        20,             "low",            "Deg-90"
)

# Active outcomes (using T0 and T4 timepoints)
barr2012_active <- tribble(
  ~study,      ~group, ~measure,  ~timepoint, ~mean,  ~sd,   ~days,
  "Barr 2012", "Active", "PANSS-P", "T0",       13.38,  4.66,  0,
  "Barr 2012", "Active", "PANSS-N", "T0",       14.85,  6.43,  0,
  "Barr 2012", "Active", "SANS",    "T0",       25.69, 12.63,  0,
  "Barr 2012", "Active", "PANSS-P", "T4",       14.00,  6.16,  28,
  "Barr 2012", "Active", "PANSS-N", "T4",       15.31,  9.22,  28,
  "Barr 2012", "Active", "SANS",    "T4",       24.15, 13.97,  28
)

# Sham outcomes for Barr (2012) (note the follow‐up [FU] at 42 days)
barr2012_sham <- tribble(
  ~study,      ~group, ~measure,  ~timepoint, ~mean,  ~sd,   ~follow_up,
  "Barr 2012", "Sham", "PANSS-P", "T0",       12.22,  4.52,   NA,
  "Barr 2012", "Sham", "PANSS-N", "T0",       15.50,  6.27,   NA,
  "Barr 2012", "Sham", "SANS",    "T0",       33.33, 14.16,   NA,
  "Barr 2012", "Sham", "PANSS-P", "T4",       15.11,  5.06,   42,
  "Barr 2012", "Sham", "PANSS-N", "T4",       13.00,  4.02,   42,
  "Barr 2012", "Sham", "SANS",    "T4",       31.67, 13.94,   42
)

### Basavaraju (2021) Data ###

# Baseline characteristics
basa2021_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,       ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Basavaraju 2021", "Active", 30,  30, 31.17,       9.90,       34.17,        8.06,       80,           73.33,    "Cereb-Vermis", "Neuronav",    "Bi-Sim",       "ITBS",      31.67,      10,             "High",           "coil"
)

# Active outcomes – many neuropsychological measures (T0 and T1)
basa2021_active <- tribble(
  ~study,           ~group,   ~measure,                    ~timepoint, ~mean,          ~sd,
  "Basavaraju 2021", "Active", "SANS",                      "T0",       85.23333333,   11.75228029,
  "Basavaraju 2021", "Active", "SANS",                      "T1",       76.56666667,   12.11064887,
  "Basavaraju 2021", "Active", "SAPS",                      "T0",       4.633333333,   6.144710837,
  "Basavaraju 2021", "Active", "SAPS",                      "T1",       2.033333333,   3.295590924,
  "Basavaraju 2021", "Active", "LearningScore",             "T0",       31.10714286,   9.109780197,
  "Basavaraju 2021", "Active", "LearningScore",             "T1",       38.53571429,   11.67295749,
  "Basavaraju 2021", "Active", "MemoryScore",               "T0",       22.96428571,   7.549746833,
  "Basavaraju 2021", "Active", "MemoryScore",               "T1",       25.71428571,   11.09172913,
  "Basavaraju 2021", "Active", "LongtermRetentionScore",    "T0",       61.72,        38.77,
  "Basavaraju 2021", "Active", "LongtermRetentionScore",    "T1",       74.38,        38.77,
  "Basavaraju 2021", "Active", "AVLT Hits",                 "T0",       12.03571429,   2.808481109,
  "Basavaraju 2021", "Active", "AVLT Hits",                 "T1",       11.50,        4.702245327,
  "Basavaraju 2021", "Active", "CFT copying",               "T0",       31.66071429,   5.240606361,
  "Basavaraju 2021", "Active", "CFT copying",               "T1",       31.26785714,   4.854326331,
  "Basavaraju 2021", "Active", "CFT Immediate Recall",      "T0",       12.60714286,   8.754212894,
  "Basavaraju 2021", "Active", "CFT Immediate Recall",      "T1",       16.69642857,   9.861390562,
  "Basavaraju 2021", "Active", "CFT Delayed Recall",        "T0",       11.92857143,   8.343010254,
  "Basavaraju 2021", "Active", "CFT Delayed Recall",        "T1",       15.96428571,   9.530582909,
  "Basavaraju 2021", "Active", "DSST time (sec)",           "T0",       372.037037,   206.8978718,
  "Basavaraju 2021", "Active", "DSST time (sec)",           "T1",       319.5384615,  151.6631084,
  "Basavaraju 2021", "Active", "DSST errors",               "T0",       0.444444444,  1.154700538,
  "Basavaraju 2021", "Active", "DSST errors",               "T1",       0.346153846,  0.977437781,
  "Basavaraju 2021", "Active", "DVT time (sec)",            "T0",       772.7777778,  373.6371474,
  "Basavaraju 2021", "Active", "DVT time (sec)",            "T1",       627.8148148,  274.012919,
  "Basavaraju 2021", "Active", "CT-A time (sec)",           "T0",       110.4814815,  61.72854368,
  "Basavaraju 2021", "Active", "CT-A time (sec)",           "T1",       92.18518519,  46.19943143,
  "Basavaraju 2021", "Active", "CT-A errors",               "T0",       0.185185185,  0.962250449,
  "Basavaraju 2021", "Active", "CT-A errors",               "T1",       0.111111111,  0.320256308,
  "Basavaraju 2021", "Active", "CT-B time (sec)",           "T0",       255.8076923,  148.1439892,
  "Basavaraju 2021", "Active", "CT-B time (sec)",           "T1",       207.4230769,  120.867919,
  "Basavaraju 2021", "Active", "CT-B errors",               "T0",       1.230769231,  2.232625223,
  "Basavaraju 2021", "Active", "CT-B errors",               "T1",       0.807692308,  1.876576261,
  "Basavaraju 2021", "Active", "1back verbal Hits",         "T0",       6.535714286,  2.795262432,
  "Basavaraju 2021", "Active", "1back verbal Hits",         "T1",       7.428571429,  2.218250419,
  "Basavaraju 2021", "Active", "1back verbal Errors",       "T0",       3.928571429,  2.968084199,
  "Basavaraju 2021", "Active", "1back verbal Errors",       "T1",       2.678571429,  2.855191132,
  "Basavaraju 2021", "Active", "2back verbal Hits",         "T0",       4.178571429,  2.762896647,
  "Basavaraju 2021", "Active", "2back verbal Hits",         "T1",       4.607142857,  2.51424513,
  "Basavaraju 2021", "Active", "2back verbal Errors",       "T0",       6.321428571,  3.485988583,
  "Basavaraju 2021", "Active", "2back verbal Errors",       "T1",       6.25,        3.708099244,
  "Basavaraju 2021", "Active", "Spatial Span total",        "T0",       11.64285714,  4.390345348,
  "Basavaraju 2021", "Active", "Spatial Span total",        "T1",       12.71428571,  4.46266108,
  "Basavaraju 2021", "Active", "FAS",                     "T0",       17.44,       10.03361018,
  "Basavaraju 2021", "Active", "FAS",                     "T1",       17.96,        9.641403771,
  "Basavaraju 2021", "Active", "Stroop Effect score",       "T0",       251.6,       122.0049179,
  "Basavaraju 2021", "Active", "Stroop Effect score",       "T1",       202.25,       90.3740036,
  "Basavaraju 2021", "Active", "FOT index",               "T0",       0.782142857,  0.29142507,
  "Basavaraju 2021", "Active", "FOT index",               "T1",       0.786428571,  0.25343513,
  "Basavaraju 2021", "Active", "SOT index",               "T0",       0.344285714,  0.248647133,
  "Basavaraju 2021", "Active", "SOT index",               "T1",       0.456071429,  0.286893828,
  "Basavaraju 2021", "Active", "Faux Pax CI",             "T0",       0.388541667,  0.166970963,
  "Basavaraju 2021", "Active", "Faux Pax CI",             "T1",       0.416666667,  0.204124145,
  "Basavaraju 2021", "Active", "Personalizing Bias Index","T0",       0.773913043,  0.344063143,
  "Basavaraju 2021", "Active", "Personalizing Bias Index","T1",       0.640909091,  0.386263038,
  "Basavaraju 2021", "Active", "Social Perception Index", "T0",       0.648571429,  0.137196418,
  "Basavaraju 2021", "Active", "Social Perception Index", "T1",       0.677619048,  0.135237005,
  "Basavaraju 2021", "Active", "Emotion Recognition Index","T0",      0.559821429,  0.155804258,
  "Basavaraju 2021", "Active", "Emotion Recognition Index","T1",      0.545892857,  0.181971221
)

# Sham outcomes for Basavaraju (2021)
basa2021_sham <- tribble(
  ~study,           ~group,   ~measure,                    ~timepoint, ~mean,          ~sd,
  "Basavaraju 2021", "Sham", "SANS",                      "T0",       82.46666667,   13.82335189,
  "Basavaraju 2021", "Sham", "SANS",                      "T1",       71.30,        15.1638181,
  "Basavaraju 2021", "Sham", "SAPS",                      "T0",       6.10,         9.337909387,
  "Basavaraju 2021", "Sham", "SAPS",                      "T1",       3.333333333,  6.598502094,
  "Basavaraju 2021", "Sham", "LearningScore",             "T0",       32.33333333,  32.33333333,
  "Basavaraju 2021", "Sham", "LearningScore",             "T1",       40.66666667,  11.89706812,
  "Basavaraju 2021", "Sham", "MemoryScore",               "T0",       25.89655172,   7.441893133,
  "Basavaraju 2021", "Sham", "MemoryScore",               "T1",       28.86206897,   8.547030136,
  "Basavaraju 2021", "Sham", "LongtermRetentionScore",    "T0",       83.39,        42.39,
  "Basavaraju 2021", "Sham", "LongtermRetentionScore",    "T1",       91.26,        42.39,
  "Basavaraju 2021", "Sham", "AVLT Hits",                 "T0",       12.34482759,  2.208358506,
  "Basavaraju 2021", "Sham", "AVLT Hits",                 "T1",       12.34482759,  2.93106346,
  "Basavaraju 2021", "Sham", "CFT copying",               "T0",       29.20689655,  7.527944656,
  "Basavaraju 2021", "Sham", "CFT copying",               "T1",       29.43103448,  7.356634685,
  "Basavaraju 2021", "Sham", "CFT Immediate Recall",      "T0",       10.9137931,   8.221345221,
  "Basavaraju 2021", "Sham", "CFT Immediate Recall",      "T1",       16.03448276,  9.386474915,
  "Basavaraju 2021", "Sham", "CFT Delayed Recall",        "T0",       9.672413793,  7.534771612,
  "Basavaraju 2021", "Sham", "CFT Delayed Recall",        "T1",       15.81034483,  9.491926826,
  "Basavaraju 2021", "Sham", "DSST time (sec)",           "T0",       475.1724138,  288.5614652,
  "Basavaraju 2021", "Sham", "DSST time (sec)",           "T1",       386.4827586,  175.5616743,
  "Basavaraju 2021", "Sham", "DSST errors",               "T0",       1.586206897,  2.809642089,
  "Basavaraju 2021", "Sham", "DSST errors",               "T1",       1.034482759,  2.25962637,
  "Basavaraju 2021", "Sham", "DVT time (sec)",            "T0",       780.2758621,  349.2357878,
  "Basavaraju 2021", "Sham", "DVT time (sec)",            "T1",       654.2413793,  245.303843,
  "Basavaraju 2021", "Sham", "CT-A time (sec)",           "T0",       162.2758621,  127.0120626,
  "Basavaraju 2021", "Sham", "CT-A time (sec)",           "T1",       134.9655172,  125.3824101,
  "Basavaraju 2021", "Sham", "CT-A errors",               "T0",       0.24137931,   0.576638808,
  "Basavaraju 2021", "Sham", "CT-A errors",               "T1",       0.068965517,  0.257880715,
  "Basavaraju 2021", "Sham", "CT-B time (sec)",           "T0",       349.2413793,  221.5175993,
  "Basavaraju 2021", "Sham", "CT-B time (sec)",           "T1",       316,         287.9098321,
  "Basavaraju 2021", "Sham", "CT-B errors",               "T0",       1.655172414,  2.287791544,
  "Basavaraju 2021", "Sham", "CT-B errors",               "T1",       1.482758621,  2.886182472,
  "Basavaraju 2021", "Sham", "1back verbal Hits",         "T0",       7.033333333,  2.251181044,
  "Basavaraju 2021", "Sham", "1back verbal Hits",         "T1",       7.166666667,  1.949064025,
  "Basavaraju 2021", "Sham", "1back verbal Errors",       "T0",       2.933333333,  2.778406059,
  "Basavaraju 2021", "Sham", "1back verbal Errors",       "T1",       2.666666667,  2.577533348,
  "Basavaraju 2021", "Sham", "2back verbal Hits",         "T0",       4,           2.304418544,
  "Basavaraju 2021", "Sham", "2back verbal Hits",         "T1",       4.551724138,  2.261260819,
  "Basavaraju 2021", "Sham", "2back verbal Errors",       "T0",       7.2,         3.699021306,
  "Basavaraju 2021", "Sham", "2back verbal Errors",       "T1",       6.413793103,  3.396607986,
  "Basavaraju 2021", "Sham", "Spatial Span total",        "T0",       10.1,        2.916658456,
  "Basavaraju 2021", "Sham", "Spatial Span total",        "T1",       10.96666667,  3.418845675,
  "Basavaraju 2021", "Sham", "FAS",                     "T0",       17.52,       7.130451131,
  "Basavaraju 2021", "Sham", "FAS",                     "T1",       19.76,       7.019496658,
  "Basavaraju 2021", "Sham", "Stroop Effect score",       "T0",       281,         153.6649702,
  "Basavaraju 2021", "Sham", "Stroop Effect score",       "T1",       210.962963,  131.1330744,
  "Basavaraju 2021", "Sham", "FOT index",               "T0",       0.789310345,  0.219344495,
  "Basavaraju 2021", "Sham", "FOT index",               "T1",       0.804285714,  0.218164542,
  "Basavaraju 2021", "Sham", "SOT index",               "T0",       0.44,        0.290590532,
  "Basavaraju 2021", "Sham", "SOT index",               "T1",       0.442321429,  0.271318735,
  "Basavaraju 2021", "Sham", "Faux Pax CI",             "T0",       0.394,       0.206697847,
  "Basavaraju 2021", "Sham", "Faux Pax CI",             "T1",       0.47736,     0.208910044,
  "Basavaraju 2021", "Sham", "Personalizing Bias Index","T0",       0.779166667,  0.282810686,
  "Basavaraju 2021", "Sham", "Personalizing Bias Index","T1",       0.926086957,  0.492874123,
  "Basavaraju 2021", "Sham", "Social Perception Index", "T0",       0.612173913,  0.102644865,
  "Basavaraju 2021", "Sham", "Social Perception Index", "T1",       0.616956522,  0.114868889,
  "Basavaraju 2021", "Sham", "Emotion Recognition Index","T0",      0.566662069,  0.141361761,
  "Basavaraju 2021", "Sham", "Emotion Recognition Index","T1",      0.55862069,   0.166305155
)


### Battion (2021) ###

# Baseline characteristics
battion2021_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralization, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Battion 2021", "Active",    12,  10, 42.33,       9.44,       41.6,       12.63,       100,          90,         "L-DLPFC", "cm",          "Uni-L",       "ITBS",     128.6,       20,              "High",           "Coil"
)

# Active outcomes (with timepoints; here T0 = 0 days and T1 = 12 days)
battion2021_active <- tribble(
  ~study,         ~group,  ~measure, ~timepoint, ~mean,   ~sd,    ~days,
  "Battion 2021", "Active", "PANSS",  "T0",     78.83,   7.96,   0,
  "Battion 2021", "Active", "PANSS",  "T1",     72.08,  13.19,   12,
  "Battion 2021", "Active", "SANS",   "T0",     77.75,  13.00,    0,
  "Battion 2021", "Active", "SANS",   "T1",     70.08,  16.32,   12
)

# Sham outcomes
battion2021_sham <- tribble(
  ~study,         ~group,  ~measure, ~timepoint, ~mean,   ~sd,    ~days,
  "Battion 2021", "Sham",  "PANSS",  "T0",     71.50,  14.58,    0,
  "Battion 2021", "Sham",  "PANSS",  "T1",     67.00,  15.68,   12,
  "Battion 2021", "Sham",  "SANS",   "T0",     71.10,  21.18,    0,
  "Battion 2021", "Sham",  "SANS",   "T1",     63.20,  20.80,   12
)

### Blumberger (2012) ###

# Baseline characteristics for two active interventions (LF and Priming)
blumberger2012_baseline <- tribble(
  ~study,           ~group,      ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,  ~target_method, ~laterilisation, ~technique,                         ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Blumberger 2012", "LF Active",  17,  17, 36.6,         8.2,        40.8,         40.8,       NA,           37.3,     "L-TPJ",      "Neuronav",    "Uni-L",       "LF-RTMS",                         1200,        20,              "low",              "Deg-90",
  "Blumberger 2012", "Prm Active", 17,  NA, 43.8,        11.7,       NA,           NA,         NA,           NA,       NA,           NA,            NA,            "Priming (HF-RTMS then LF-RTMS)", NA,         NA,              NA,                 NA
)

# LF Active outcomes – all measurements reported at T0 and T1 (T0 = 0 days; T1 day not specified, so left as NA)
blumberger2012_active_LF <- tribble(
  ~study,           ~group,     ~measure,  ~timepoint, ~mean,   ~sd,   ~n_post, ~days,
  "Blumberger 2012", "LF Active", "PSYRATS", "T0",      30.82,   6.56,  15,      0,
  "Blumberger 2012", "LF Active", "PSYRATS", "T1",      28.47,   7.48,  15,      NA,
  "Blumberger 2012", "LF Active", "PANSS-T", "T0",      66.65,  16.38,  16,      0,
  "Blumberger 2012", "LF Active", "PANSS-T", "T1",      63.38,  15.92,  16,      NA,
  "Blumberger 2012", "LF Active", "PANSS-P", "T0",      17.24,   3.65,  16,      0,
  "Blumberger 2012", "LF Active", "PANSS-P", "T1",      16.13,   4.32,  16,      NA,
  "Blumberger 2012", "LF Active", "AHRS",    "T0",      29.41,   6.15,  15,      0,
  "Blumberger 2012", "LF Active", "AHRS",    "T1",      26.40,   7.61,  15,      NA
)

# Prm Active outcomes – note that the follow‐up time (days) varies by measure.
blumberger2012_active_Prm <- tribble(
  ~study,           ~group,     ~measure,  ~timepoint, ~mean,   ~sd,   ~n_post, ~days,
  "Blumberger 2012", "Prm Active", "PSYRATS", "T0",      32.12,   6.17,  13,      0,
  "Blumberger 2012", "Prm Active", "PSYRATS", "T1",      30.38,   6.59,  13,      7,
  "Blumberger 2012", "Prm Active", "PANSS-T", "T0",      69.94,  19.39,  15,      0,
  "Blumberger 2012", "Prm Active", "PANSS-T", "T1",      62.60,  14.42,  15,      14,
  "Blumberger 2012", "Prm Active", "PANSS-P", "T0",      17.41,   3.18,  15,      0,
  "Blumberger 2012", "Prm Active", "PANSS-P", "T1",      16.27,   4.06,  15,      21,
  "Blumberger 2012", "Prm Active", "AHRS",    "T0",      28.12,   6.29,  12,      0,
  "Blumberger 2012", "Prm Active", "AHRS",    "T1",      26.58,   7.04,  12,      28
)

# Sham outcomes
blumberger2012_sham <- tribble(
  ~study,           ~group, ~measure,  ~timepoint, ~mean,   ~sd,   ~n_post,
  "Blumberger 2012", "Sham", "PSYRATS", "T0",      30.35,   5.37,  13,
  "Blumberger 2012", "Sham", "PSYRATS", "T1",      29.62,   4.89,  13,
  "Blumberger 2012", "Sham", "PANSS-T", "T0",      61.94,  14.22,  15,
  "Blumberger 2012", "Sham", "PANSS-T", "T1",      60.47,  16.15,  15,
  "Blumberger 2012", "Sham", "PANSS-P", "T0",      16.59,   3.86,  15,
  "Blumberger 2012", "Sham", "PANSS-P", "T1",      16.00,   4.23,  15,
  "Blumberger 2012", "Sham", "AHRS",    "T0",      26.53,   7.80,  13,
  "Blumberger 2012", "Sham", "AHRS",    "T1",      25.85,   7.84,  13
)

### Bodén (2021) ###

# Baseline characteristics
boden2021_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~laterilisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Bodén 2021", "Active",   7,   9,         NA,         NA,         NA,         NA,           NA,           NA,         "Bi-DMPFC",   "cm",          "Bi-Seq-LR/RL", "ITBS",      130.6,       20,              "High",           "Deg-180"
)

# Active outcomes (T0 = 0 days; T1 = 15 days)
boden2021_active <- tribble(
  ~study,       ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~days,
  "Bodén 2021", "Active", "CAIN",  "T0",     27.89,   7.37,   0,
  "Bodén 2021", "Active", "CAIN",  "T1",     24.78,  11.16,   15
)

# Sham outcomes
boden2021_sham <- tribble(
  ~study,       ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~days,
  "Bodén 2021", "Sham", "CAIN",  "T0",     25.86,   9.14,    0,
  "Bodén 2021", "Sham", "CAIN",  "T1",     22.14,   8.67,   15
)

### Bose (2018) ###

# Baseline characteristics
bose2018_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,      ~target,          ~target_method, ~laterilisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Bose 2018", "Active",   12,  13,       31.25,       8.32,       31.38,       7.56,         75,          38.46, "L-DLPFC_L-TPJ", "10-20EEG",      "Uni-L",       "TDCS",       200,       10,              "High",           "40s"
)

# Active outcomes (T0 = 0 days; T1 = 5 days)
bose2018_active <- tribble(
  ~study,       ~group,  ~measure, ~timepoint, ~mean,    ~sd,   ~days,
  "Bose 2018", "Active", "SAPS",   "T0",     33.58,   10.87,    0,
  "Bose 2018", "Active", "SAPS",   "T1",     24.67,    8.542,   5,
  "Bose 2018", "Active", "SANS",   "T0",     17.17,   13.286,   0,
  "Bose 2018", "Active", "SANS",   "T1",     11.00,    9.244,   5,
  "Bose 2018", "Active", "AHRS",   "T0",     31.00,    4.651,   0,
  "Bose 2018", "Active", "AHRS",   "T1",     21.41,    4.852,   5
)

# Sham outcomes
bose2018_sham <- tribble(
  ~study,       ~group,  ~measure, ~timepoint, ~mean,    ~sd,   ~days,
  "Bose 2018", "Sham", "SAPS",   "T0",     46.00,   15.89,    0,
  "Bose 2018", "Sham", "SAPS",   "T1",     37.54,   15.56,    5,
  "Bose 2018", "Sham", "SANS",   "T0",     33.46,   21.682,   0,
  "Bose 2018", "Sham", "SANS",   "T1",     25.23,   19.357,   5,
  "Bose 2018", "Sham", "AHRS",   "T0",     29.85,    2.853,   0,
  "Bose 2018", "Sham", "AHRS",   "T1",     27.85,    3.262,   5
)


### Brunelin (2012) ###

# Baseline characteristics
brunelin2012_baseline <- tribble(
  ~study,           ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,         ~target,           ~target_method, ~laterilisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Brunelin 2012",  "Active", 15, 15, 40.4,         9.9,        35.1,         7,         NA,           NA,                "L-DLPFC_L-TPJ", "10-20EEG",     "Uni-L",       "TDCS",     200,         10,              "High",           "40s"
)

# Active outcomes
brunelin2012_active <- tribble(
  ~study,           ~group,   ~measure, ~timepoint, ~mean,  ~sd,  ~days,
  "Brunelin 2012",  "Active", "AHRS",   "T0",     28,     4,    0,
  "Brunelin 2012",  "Active", "AHRS",   "T1",     20,     6,    5,
  "Brunelin 2012",  "Active", "PANSS",  "T0",     76.9,   16.4, 0,
  "Brunelin 2012",  "Active", "PANSS",  "T1",     66.9,   15,   5
)

# Sham outcomes
brunelin2012_sham <- tribble(
  ~study,           ~group,   ~measure, ~timepoint, ~mean,   ~sd,  ~days,
  "Brunelin 2012",  "Sham",   "AHRS",   "T0",     27,      7,    0,
  "Brunelin 2012",  "Sham",   "AHRS",   "T1",     25,      8,    5,
  "Brunelin 2012",  "Sham",   "PANSS",  "T0",     82.8,    15.5, 0,
  "Brunelin 2012",  "Sham",   "PANSS",  "T1",     80.5,    12.1, 5
)


### Brunelin (2006) ###

# Baseline characteristics
brunelin2006_baseline <- tribble(
  ~study,           ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,  ~target,  ~target_method, ~lateralisation, ~technique,  ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Brunelin 2006",  "Active", 14, 10, 34.9,         8,         34,         7,         NA,           NA,         "L-TPJ", "10-20EEG",   "Uni-L",       "LF-RTMS",  25,          10,              "High",           "Coil"
)

# Active outcomes
brunelin2006_active <- tribble(
  ~study,           ~group,       ~measure,              ~timepoint, ~mean,   ~sd,  ~days,
  "Brunelin 2006",  "Active",     "AHRS",                "T0",       25.5,    5.7,  0,
  "Brunelin 2006",  "Active",     "AHRS",                "T1",       14.1,    9.9,  5,
  "Brunelin 2006",  "Active",     "SAPS",                "T0",       54.3,    21.7, 0,
  "Brunelin 2006",  "Active",     "SAPS",                "T1",       49.1,    22.7, 5,
  "Brunelin 2006",  "Active",     "MonitorSourceTask",   "T0",       4,       1.6,  0,
  "Brunelin 2006",  "Active",     "MonitorSourceTask",   "T1",       2.8,     1.6,  5
)

# Sham outcomes
brunelin2006_sham <- tribble(
  ~study,           ~group,       ~measure,              ~timepoint, ~mean,   ~sd,  ~days,
  "Brunelin 2006",  "Sham",       "AHRS",                "T0",       21.5,    9.1,  0,
  "Brunelin 2006",  "Sham",       "AHRS",                "T1",       20.5,    6.5,  5,
  "Brunelin 2006",  "Sham",       "SAPS",                "T0",       53.8,    23.9, 0,
  "Brunelin 2006",  "Sham",       "SAPS",                "T1",       58.3,    25.9, 5,
  "Brunelin 2006",  "Sham",       "MonitorSourceTask",   "T0",       3,       1.5,  0,
  "Brunelin 2006",  "Sham",       "MonitorSourceTask",   "T1",       2.8,     2,    5
)


### Bulubas (2021) ###

# Baseline characteristics
bulubas2021_baseline <- tribble(
  ~study,           ~group, ~Na,  ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,           ~target,           ~target_method, ~laterilisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Bulubas 2021",   "Active", 48,  42, 34.38,       8.14,       34.83,       10.17,       83.33,       76.19,              "L-DLPFC_L-TPJ",  "10-20EEG",     "Uni-L",       "TDCS",     200,         10,              "High",           "40s"
)

# Active outcomes
bulubas2021_active <- tribble(
  ~study,           ~group,      ~measure,                                 ~timepoint, ~mean,  ~sd,   ~days,
  "Bulubas 2021",   "Active",    "PFMT Total Correct Responses",           "T0",       27.83, 4.57,  0,
  "Bulubas 2021",   "Active",    "PFMT Total Correct Responses",           "T1",       29.73, 4.19,  49,
  "Bulubas 2021",   "Active",    "PWMT Total Correct Responses",           "T0",       29.48, 4.64,  0,
  "Bulubas 2021",   "Active",    "PWMT Total Correct Responses",           "T1",       30.25, 4.33,  49,
  "Bulubas 2021",   "Active",    "EMI Correct Responses",                  "T0",       27.54, 5.95,  0,
  "Bulubas 2021",   "Active",    "EMI Correct Responses",                  "T1",       28.25, 5.52,  49,
  "Bulubas 2021",   "Active",    "PLNB 0-back True Positive Responses",    "T0",       9.31,  1.07,  0,
  "Bulubas 2021",   "Active",    "PLNB 0-back True Positive Responses",    "T1",       9.62,  0.75,  49,
  "Bulubas 2021",   "Active",    "PLNB 1-back True Positive Responses",    "T0",       8.5,   1.77,  0,
  "Bulubas 2021",   "Active",    "PLNB 1-back True Positive Responses",    "T1",       8.82,  1.6,   49,
  "Bulubas 2021",   "Active",    "PLNB 2-back True Positive Responses",    "T0",       6.15,  2.28,  0,
  "Bulubas 2021",   "Active",    "PLNB 2-back True Positive Responses",    "T1",       6.85,  1.94,  49,
  "Bulubas 2021",   "Active",    "PCET Number Correct Responses",          "T0",       29.94, 18.41, 0,
  "Bulubas 2021",   "Active",    "PCET Number Correct Responses",          "T1",       30.23, 15.82, 49,
  "Bulubas 2021",   "Active",    "Short VOLT Total Correct",               "T0",       13.62, 2.63,  0,
  "Bulubas 2021",   "Active",    "Short VOLT Total Correct",               "T1",       14.26, 2.79,  49
)

# Sham outcomes
bulubas2021_sham <- tribble(
  ~study,           ~group,      ~measure,                                 ~timepoint, ~mean,  ~sd,   ~days,
  "Bulubas 2021",   "Sham",      "PFMT Total Correct Responses",           "T0",       27.29, 5.84,  0,
  "Bulubas 2021",   "Sham",      "PFMT Total Correct Responses",           "T1",       28.84, 4.5,   49,
  "Bulubas 2021",   "Sham",      "PWMT Total Correct Responses",           "T0",       29.5,  5.97,  0,
  "Bulubas 2021",   "Sham",      "PWMT Total Correct Responses",           "T1",       31.38, 3.93,  49,
  "Bulubas 2021",   "Sham",      "EMI Correct Responses",                  "T0",       28.64, 5.62,  0,
  "Bulubas 2021",   "Sham",      "EMI Correct Responses",                  "T1",       30,    4.65,  49,
  "Bulubas 2021",   "Sham",      "PLNB 0-back True Positive Responses",    "T0",       9.24,  1.51,  0,
  "Bulubas 2021",   "Sham",      "PLNB 0-back True Positive Responses",    "T1",       9.62,  0.75,  49,
  "Bulubas 2021",   "Sham",      "PLNB 1-back True Positive Responses",    "T0",       8.21,  2.23,  0,
  "Bulubas 2021",   "Sham",      "PLNB 1-back True Positive Responses",    "T1",       8.82,  1.6,   49,
  "Bulubas 2021",   "Sham",      "PLNB 2-back True Positive Responses",    "T0",       6.07,  2.32,  0,
  "Bulubas 2021",   "Sham",      "PLNB 2-back True Positive Responses",    "T1",       6.85,  1.94,  49,
  "Bulubas 2021",   "Sham",      "PCET Number Correct Responses",          "T0",       25.21, 13.25, 0,
  "Bulubas 2021",   "Sham",      "PCET Number Correct Responses",          "T1",       26.19, 14.28, 49,
  "Bulubas 2021",   "Sham",      "Short VOLT Total Correct",               "T0",       13.38, 2.55,  0,
  "Bulubas 2021",   "Sham",      "Short VOLT Total Correct",               "T1",       14.05, 2.37,  49
)


### Chang‐a (2021) ###

# Baseline characteristics
changa2021_baseline <- tribble(
  ~study,           ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,                  ~target,                 ~target_method, ~lateralisation, ~technique, ~frequency, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Chang-a 2021",   "Active", 18, 18, 41.78,       8.84,       43.17,       11.2,      55.56,       44.4,         "L-FC/L-PC_CPz/FCz",    "10-20EEG",     "Uni-L",       "TACS",   "6Hz",    200,         10,              "High",           "30s"
)

# Active outcomes
changa2021_active <- tribble(
  ~study,           ~group,   ~measure,  ~timepoint, ~mean,   ~sd,  ~days,
  "Chang-a 2021",   "Active", "PANSS-T", "T0",       72.44,   9.72, 0,
  "Chang-a 2021",   "Active", "PANSS-T", "T1",       67.16,   10.5, 5,
  "Chang-a 2021",   "Active", "PANSS-N", "T0",       19.22,   3.86, 0,
  "Chang-a 2021",   "Active", "PANSS-N", "T1",       16.55,   4.41, 5,
  "Chang-a 2021",   "Active", "SANS",    "T0",       51.94,   11.87,0,
  "Chang-a 2021",   "Active", "SANS",    "T1",       44.83,   13.15,5
)

# Sham outcomes
changa2021_sham <- tribble(
  ~study,           ~group,   ~measure,  ~timepoint, ~mean,   ~sd,  ~days,
  "Chang-a 2021",   "Sham",   "PANSS-T", "T0",       74.11,   7.3,  0,
  "Chang-a 2021",   "Sham",   "PANSS-T", "T1",       73.22,   8.52, 5,
  "Chang-a 2021",   "Sham",   "PANSS-N", "T0",       19.83,   3.63, 0,
  "Chang-a 2021",   "Sham",   "PANSS-N", "T1",       19.11,   4.07, 5,
  "Chang-a 2021",   "Sham",   "SANS",    "T0",       52.61,   10.05,0,
  "Chang-a 2021",   "Sham",   "SANS",    "T1",       50.44,   11.2, 5
)


### Chang (2019) ###

# Baseline characteristics
chang2019_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,          ~target,           ~target_method, ~laterilisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Chang 2019",   "Active", 30, 30, 46.4,         10.29,      42.17,       10.29,      46.7,        43.3,          "L-DLPFC_L-TPJ", "10-20EEG",     "Uni-L",       "TDCS",     200,         10,              "High",           "30s"
)

# Active outcomes (T1 mean change values; all outcomes represent change from baseline to T1)
chang2019_active <- tribble(
  ~study,      ~group,   ~measure,                           ~timepoint, ~mean_change, ~sd,   ~days,
  "Chang 2019", "Active", "PANSS-T",                          "T1",       -2.5,         0.54,  NA,
  "Chang 2019", "Active", "PANSS-P",                          "T1",       -0.5,         0.23,  NA,
  "Chang 2019", "Active", "PANSS-N",                          "T1",       -0.49,        0.15,  NA,
  "Chang 2019", "Active", "PANSS-G",                          "T1",       -1.58,        0.33,  NA,
  "Chang 2019", "Active", "Digits forward score",             "T1",       0.56,         0.17,  NA,
  "Chang 2019", "Active", "Digits backward score",            "T1",       0.96,         0.28,  NA,
  "Chang 2019", "Active", "TMT-A",                            "T1",       -5.64,        4.27,  NA,
  "Chang 2019", "Active", "TMT-B",                            "T1",       -20.95,       12.38, NA,
  "Chang 2019", "Active", "WCST trials correct",              "T1",       -0.35,        3.88,  NA,
  "Chang 2019", "Active", "CPT II Omission errors (number)",  "T1",       2.36,         5.14,  NA,
  "Chang 2019", "Active", "CPT II Commission errors (number)", "T1",       4.7,          1.93,  NA,
  "Chang 2019", "Active", "CPT II Hit RT (ms)",               "T1",       44.77,        27.56, 0,
  "Chang 2019", "Active", "TOL accuracy",                     "T1",       3.03,         0.45,  5,
  "Chang 2019", "Active", "TOL time",                         "T1",       -110.2,       24.02, NA,
  "Chang 2019", "Active", "TOL score (rule violations)",      "T1",       -1.53,        0.4,  NA
)

# Sham outcomes (T1 mean change values)
chang2019_sham <- tribble(
  ~study,      ~group,   ~measure,                           ~timepoint, ~mean_change, ~sd,   ~days,
  "Chang 2019", "Sham",   "PANSS-T",                          "T1",       -0.47,        0.54,  NA,
  "Chang 2019", "Sham",   "PANSS-P",                          "T1",       -0.2,         0.23,  NA,
  "Chang 2019", "Sham",   "PANSS-N",                          "T1",       -0.08,        0.15,  NA,
  "Chang 2019", "Sham",   "PANSS-G",                          "T1",       -0.19,        0.32,  NA,
  "Chang 2019", "Sham",   "Digits forward score",             "T1",       0.74,         0.17,  NA,
  "Chang 2019", "Sham",   "Digits backward score",            "T1",       0.67,         0.28,  NA,
  "Chang 2019", "Sham",   "TMT-A",                            "T1",       -11.46,       4.27,  NA,
  "Chang 2019", "Sham",   "TMT-B",                            "T1",       -24.49,       12.38, NA,
  "Chang 2019", "Sham",   "WCST trials correct",              "T1",       0.71,         3.88,  NA,
  "Chang 2019", "Sham",   "CPT II Omission errors (number)",  "T1",       6.45,         5.17,  NA,
  "Chang 2019", "Sham",   "CPT II Commission errors (number)", "T1",       0.57,         1.93,  NA,
  "Chang 2019", "Sham",   "CPT II Hit RT (ms)",               "T1",       77.46,        27.56, 0,
  "Chang 2019", "Sham",   "TOL accuracy",                     "T1",       1.37,         0.45,  5,
  "Chang 2019", "Sham",   "TOL time",                         "T1",       -92.8,        24.02, NA,
  "Chang 2019", "Sham",   "TOL score (rule violations)",      "T1",       -1.57,        0.4,  NA
)


### Chang (2020) ###

# Baseline characteristics
chang2020_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,          ~target,              ~target_method, ~laterisaltion, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Chang 2020", "Active", 30, 30, 44.7,         10.7,       45.03,       10.91,      63.3,         36.7,        "L-DLPFC_R-DLPFC",   "10-20EEG",     "Bi_Sim",      "TDCS",     200,         10,              "High",           "30s"
)

# Active outcomes (T1 Mean Change; note that some measures include additional time-point info)
chang2020_active <- tribble(
  ~study,       ~group,   ~measure,                            ~timepoint, ~mean_change, ~sd,           ~days,
  "Chang 2020", "Active", "MMSE",                            "T1",       0.53,         3.122018578,  NA,
  "Chang 2020", "Active", "Digits forward score",            "T1",       0.49,         1.314534138,  NA,
  "Chang 2020", "Active", "Digits backward score",           "T1",       0.68,         1.917028951,  NA,
  "Chang 2020", "Active", "TMT-A",                           "T1",       -11.7,        25.68818795,  NA,
  "Chang 2020", "Active", "TMT-B",                           "T1",       -16.56,       47.6518625,   NA,
  "Chang 2020", "Active", "WCST trials correct",             "T1",       -0.46,        15.06237033,  NA,
  "Chang 2020", "Active", "CPT II Omission errors (number)", "T1",       2.49,         21.68981328,  NA,
  "Chang 2020", "Active", "CPT II Commission errors (number)","T1",      -2.38,         5.915403621,  NA,
  "Chang 2020", "Active", "CPT II Hit RT (ms)",              "T1",       15.86,        101.7121,     NA,
  "Chang 2020", "Active", "TOL accuracy",                    "T0",       0.35,         2.409979253,  0,
  "Chang 2020", "Active", "TOL time",                        "T1",       -49.36,       126.8525,     5,
  "Chang 2020", "Active", "TOL score (rule violations)",     "T1",       -0.63,        1.5884,       NA
)

# Sham outcomes
chang2020_sham <- tribble(
  ~study,       ~group,   ~measure,                            ~timepoint, ~mean_change, ~sd,           ~days,
  "Chang 2020", "Sham",   "MMSE",                            "T1",       0.3,         2.57429602,   NA,
  "Chang 2020", "Sham",   "Digits forward score",            "T1",       0.35,        1.314534138,  NA,
  "Chang 2020", "Sham",   "Digits backward score",           "T1",       0.36,        1.917028951,  NA,
  "Chang 2020", "Sham",   "TMT-A",                           "T1",       -9.6,        25.68818795,  NA,
  "Chang 2020", "Sham",   "TMT-B",                           "T1",       -25.49,      47.6518625,   NA,
  "Chang 2020", "Sham",   "WCST trials correct",             "T1",       2.22,        15.06237033,  NA,
  "Chang 2020", "Sham",   "CPT II Omission errors (number)", "T1",       2.05,        21.68981328,  NA,
  "Chang 2020", "Sham",   "CPT II Commission errors (number)","T1",      -2.22,        5.915403621,  NA,
  "Chang 2020", "Sham",   "CPT II Hit RT (ms)",              "T1",       -27.03,      101.7121,     NA,
  "Chang 2020", "Sham",   "TOL accuracy",                    "T1",       0.32,        2.409979253,  NA,
  "Chang 2020", "Sham",   "TOL time",                        "T1",       -67.84,      126.8525,     NA,
  "Chang 2020", "Sham",   "TOL score (rule violations)",     "T1",       -1.48,       1.5884,      NA
)

### Chang-b (2021) ###

# Baseline characteristics
changb2021_baseline <- tribble(
  ~study,        ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,         ~target,         ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Chang-b 2021", "Active", 17, 18, 44.06,       12.5,       43.17,       11.63,      64.7,         55.56,       "L-DLPFC_R-FC",  "10-20EEG",    "Uni-L",       "TRNS",     200,         10,              "High",           "40s"
)

# Active outcomes
changb2021_active <- tribble(
  ~study,         ~group,   ~measure,  ~timepoint, ~mean_change, ~sd,   ~days,
  "Chang-b 2021", "Active", "PANSS-T", "T0",       -8.12,       5.85,  0,
  "Chang-b 2021", "Active", "PANSS-N", "T1",       -3.29,       1.96,  7
)

# Sham outcomes
changb2021_sham <- tribble(
  ~study,         ~group,   ~measure,  ~timepoint, ~mean_change, ~sd,   ~days,
  "Chang-b 2021", "Sham",   "PANSS-T", "T1",       -0.5,        2.31,  NA,
  "Chang-b 2021", "Sham",   "PANSS-N", "T1",       -0.17,       0.38,  NA
)

### Yeh (2022) ###

# Outcome data for Yeh (2022) (baseline characteristics not provided)
# Active outcomes
yeh2022_active <- tribble(
  ~study,    ~group,   ~measure, ~timepoint, ~mean,   ~sd,
  "Yeh 2022", "Active", "PANSS-T", "T0",      69,      9.64,
  "Yeh 2022", "Active", "PANSS-T", "T1",      60.88,   8.29,
  "Yeh 2022", "Active", "PANSS-P", "T0",      14.12,   3.9,
  "Yeh 2022", "Active", "PANSS-P", "T1",      13.47,   3.74,
  "Yeh 2022", "Active", "PANSS-N", "T0",      18.41,   2.72,
  "Yeh 2022", "Active", "PANSS-N", "T1",      15.12,   2.26
)

# Sham outcomes
yeh2022_sham <- tribble(
  ~study,    ~group,   ~measure, ~timepoint, ~mean,   ~sd,
  "Yeh 2022", "Sham",   "PANSS-T", "T0",      71.39,   9.06,
  "Yeh 2022", "Sham",   "PANSS-T", "T1",      70.89,   9.32,
  "Yeh 2022", "Sham",   "PANSS-P", "T0",      14.83,   4.3,
  "Yeh 2022", "Sham",   "PANSS-P", "T1",      14.75,   4.32,
  "Yeh 2022", "Sham",   "PANSS-N", "T0",      19.5,    3.63,
  "Yeh 2022", "Sham",   "PANSS-N", "T1",      19.33,   3.8
)

### Chauhan (2021) ###

# Baseline characteristics
chauhan2021_baseline <- tribble(
  ~study,        ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,       ~target,        ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Chauhan 2021", "Active", 19, 17, 41.74,       8.85,       39.35,       8.223,      36.8,         47.1,      "Cereb-Vermis", "10-20EEG",     "Bi-Sim",       "ITBS",     26,         10,              "High",           "Coil"
)

# Active outcomes
chauhan2021_active <- tribble(
  ~study,        ~group,   ~measure, ~timepoint, ~mean,   ~sd,  ~days,
  "Chauhan 2021", "Active", "PANSS-P", "T0",      21.47,   2.37,  0,
  "Chauhan 2021", "Active", "PANSS-P", "T1",      18.89,   3.03,  7,
  "Chauhan 2021", "Active", "PANSS-N", "T0",      27.32,   3.37,  0,
  "Chauhan 2021", "Active", "PANSS-N", "T1",      24.26,   4.3,   7,
  "Chauhan 2021", "Active", "PANSS-G", "T0",      44.42,   6.96,  0,
  "Chauhan 2021", "Active", "PANSS-G", "T1",      39,      7.29,  7,
  "Chauhan 2021", "Active", "PANSS-T", "T0",      93.21,   9.41,  0,
  "Chauhan 2021", "Active", "PANSS-T", "T1",      82.16,   10.43, 7,
  "Chauhan 2021", "Active", "BPRS",    "T0",      55.26,   6.08,  0,
  "Chauhan 2021", "Active", "BPRS",    "T1",      49.68,   7.46,  7
)

# Sham outcomes
chauhan2021_sham <- tribble(
  ~study,        ~group,   ~measure, ~timepoint, ~mean,   ~sd,  ~days,
  "Chauhan 2021", "Sham",   "PANSS-P", "T0",      20.29,   2.31,  0,
  "Chauhan 2021", "Sham",   "PANSS-P", "T1",      17.71,   1.9,   7,
  "Chauhan 2021", "Sham",   "PANSS-N", "T0",      26.53,   3.08,  0,
  "Chauhan 2021", "Sham",   "PANSS-N", "T1",      23.35,   3.26,  7,
  "Chauhan 2021", "Sham",   "PANSS-G", "T0",      43.76,   5.15,  0,
  "Chauhan 2021", "Sham",   "PANSS-G", "T1",      37.65,   3.22,  7,
  "Chauhan 2021", "Sham",   "PANSS-T", "T0",      90.59,   8.09,  0,
  "Chauhan 2021", "Sham",   "PANSS-T", "T1",      78.71,   4.67,  7,
  "Chauhan 2021", "Sham",   "BPRS",    "T0",      55.53,   4.87,  0,
  "Chauhan 2021", "Sham",   "BPRS",    "T1",      49.88,   5.72,  7
)

### Corripio (2020) ###

# Baseline characteristics
corripio2020_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,                                                                                   ~target,                                         ~laterisation, ~technique, ~current, ~frequency,                                          ~total_time,                                 ~total_sessions, ~session_frequency, ~sham,
  "Corripio 2020", "Active", 3,   NA, 44.67,       NA,         NA,         NA,         0,           NA,                "N1: NAcc; N2 & N4: subgenual ACC",            "Bi-Sim",     "DBS",    "7.5V", "130Hz", "6months + randomphase or only random phase", NA,              "High",            "nostim"
)

# Active outcomes (three timepoints: T0, T1, T2)
corripio2020_active <- tribble(
  ~study,         ~group,   ~measure,  ~timepoint, ~mean,   ~sd,   ~days,
  "Corripio 2020", "Active", "PANSS-T", "T0",      61.33,   16.26,  0,
  "Corripio 2020", "Active", "PANSS-T", "T1",      84,      20.07,  14,
  "Corripio 2020", "Active", "PANSS-T", "T2",      72,      19.15,  28,
  "Corripio 2020", "Active", "PANSS-P", "T0",      15.33,   2.08,   0,
  "Corripio 2020", "Active", "PANSS-P", "T1",      21.33,   4.72,   14,
  "Corripio 2020", "Active", "PANSS-P", "T2",      17.67,   3.05,   28,
  "Corripio 2020", "Active", "PANSS-N", "T0",      15.33,   2.51,   0,
  "Corripio 2020", "Active", "PANSS-N", "T1",      22,      8.18,   14,
  "Corripio 2020", "Active", "PANSS-N", "T2",      17.33,   4.04,   28
)

# Sham outcomes (not reported; record as NA)
corripio2020_sham <- tribble(
  ~study,         ~group,   ~measure,  ~timepoint, ~mean, ~sd,
  "Corripio 2020", "Sham",  "PANSS-T", "T0",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-T", "T1",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-T", "T2",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-P", "T0",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-P", "T1",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-P", "T2",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-N", "T0",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-N", "T1",      NA,    NA,
  "Corripio 2020", "Sham",  "PANSS-N", "T2",      NA,    NA
)

### deJesus (2011) ###

# Baseline characteristics for de Jesus, 2011
deJesus2011_baseline <- tribble(
  ~study,           ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "de Jesus, 2011", "Active", 8, 9, 46, 9.84, 36.5, 6.36, "62.5%", "77.77%", "L-TPJ", "10-20EEG", "Uni-L", "LF-RTMS", 384, 20, "low", "Deg-45"
)

# Active outcomes for de Jesus, 2011
deJesus2011_active <- tribble(
  ~study,           ~group, ~measure,  ~timepoint, ~mean,  ~sd,    ~days,
  "de Jesus, 2011", "Active", "BPRS-T", "T0",       36.25, 8.27,   NA,
  "de Jesus, 2011", "Active", "BPRS-T", "T1",       25.13, 8.18,   NA,
  "de Jesus, 2011", "Active", "BPRS-P", "T0",       10.13, 3,      NA,
  "de Jesus, 2011", "Active", "BPRS-P", "T1",       10.25, 4.2,    NA,
  "de Jesus, 2011", "Active", "BPRS-N/D", "T0",     8.88,  2.35,   0,
  "de Jesus, 2011", "Active", "BPRS-N/D", "T1",     6.8,   1.95,   NA,
  "de Jesus, 2011", "Active", "AHRS",    "T0",      31,    3.62,   NA,
  "de Jesus, 2011", "Active", "AHRS",    "T1",      25.88, 4.99,   26
)

# Sham outcomes for de Jesus, 2011
deJesus2011_sham <- tribble(
  ~study,           ~group, ~measure,  ~timepoint, ~mean,  ~sd,    ~n,
  "de Jesus, 2011", "Sham", "BPRS-T", "T0",       33.11, 7.55,   NA,
  "de Jesus, 2011", "Sham", "BPRS-T", "T1",       28,    7.34,   NA,
  "de Jesus, 2011", "Sham", "BPRS-P", "T0",       10.56, 3.24,   NA,
  "de Jesus, 2011", "Sham", "BPRS-P", "T1",       9.22,  2.48,   NA,
  "de Jesus, 2011", "Sham", "BPRS-N/D", "T0",     8.56,  2.96,   NA,
  "de Jesus, 2011", "Sham", "BPRS-N/D", "T1",     7.33,  2.34,   NA,
  "de Jesus, 2011", "Sham", "AHRS",    "T0",      26.78, 7.15,   NA,
  "de Jesus, 2011", "Sham", "AHRS",    "T1",      25.22, 8.81,   NA
)

### Dharani (2021) ###

# Baseline characteristics for Dharani, 2021
dharani2021_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Dharani, 2021", "Active", 7, 7, 39.14, 3.76, 33.85, 6.81, "85.71%", NA, "L-DLPFC", "10-10EEG", "Uni-L", "HD-TDCS", 200, 10, "High", "30s"
)

# Active outcomes for Dharani, 2021
dharani2021_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~days,
  "Dharani, 2021", "Active", "PANSS-P", "T0", 10.28, 2.28, NA,
  "Dharani, 2021", "Active", "PANSS-P", "T1", 9.71, 2.28, NA,
  "Dharani, 2021", "Active", "PANSS-N", "T0", 23.14, 4.87, NA,
  "Dharani, 2021", "Active", "PANSS-N", "T1", 19, 6.37, NA,
  "Dharani, 2021", "Active", "PANSS-G", "T0", 26.57, 2.99, NA,
  "Dharani, 2021", "Active", "PANSS-G", "T1", 23.42, 3.25, NA,
  "Dharani, 2021", "Active", "SANS",    "T0", 56.57, 13.55, 0,
  "Dharani, 2021", "Active", "SANS",    "T1", 49.14, 16.91, 14
)

# Sham outcomes for Dharani, 2021
dharani2021_sham <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,  ~sd,
  "Dharani, 2021", "Sham", "PANSS-P", "T0", 11, 1.29,
  "Dharani, 2021", "Sham", "PANSS-P", "T1", 11, 1.29,
  "Dharani, 2021", "Sham", "PANSS-N", "T0", 25.71, 6.34,
  "Dharani, 2021", "Sham", "PANSS-N", "T1", 24.42, 6.47,
  "Dharani, 2021", "Sham", "PANSS-G", "T0", 28.28, 3.86,
  "Dharani, 2021", "Sham", "PANSS-G", "T1", 27.28, 4.07,
  "Dharani, 2021", "Sham", "SANS",    "T0", 59.28, 19.87,
  "Dharani, 2021", "Sham", "SANS",    "T1", 58.71, 19.25
)

### Dlabac-de Lange (2015) ###

# Baseline characteristics for Dlabac‐de Lange, 2015
dlabac2015_baseline <- tribble(
  ~study,                  ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Dlabac-de Lange, 2015", "Active", 16, 16, 41.8, 11.6, 32.3, 9.7, "87.5%", "75%", "Bi-DLPFC", "10-20EEG", "Bi-Seq-L/R", "LF-RTMS", 575, 30, "High", "Deg-90"
)

# Active outcomes for Dlabac‐de Lange, 2015
dlabac2015_active <- tribble(
  ~study,                   ~group, ~measure,                                     ~timepoint, ~mean, ~sd,   ~days,
  "Dlabac-de Lange, 2015", "Active", "SANS",                                       "T0",       56.6, 15.7, NA,
  "Dlabac-de Lange, 2015", "Active", "SANS",                                       "T1",       51.1, 19.6, NA,
  "Dlabac-de Lange, 2015", "Active", "PANSS-P",                                    "T0",       13,   4.1,  0,
  "Dlabac-de Lange, 2015", "Active", "PANSS-P",                                    "T1",       12.6, 4.1,  NA,
  "Dlabac-de Lange, 2015", "Active", "PANSS-N",                                    "T0",       20.6, 3.7,  NA,
  "Dlabac-de Lange, 2015", "Active", "PANSS-N",                                    "T1",       19.3, 5.2,  19,
  "Dlabac-de Lange, 2015", "Active", "PANSS-G",                                    "T0",       34.8, 8,    NA,
  "Dlabac-de Lange, 2015", "Active", "PANSS-G",                                    "T1",       32.6, 7.8,  NA,
  "Dlabac-de Lange, 2015", "Active", "Verbal Learning Test, recall",               "T0",       40.9, 12.7, NA,
  "Dlabac-de Lange, 2015", "Active", "Verbal Learning Test, recall",               "T1",       47.5, 15.9, NA,
  "Dlabac-de Lange, 2015", "Active", "Verbal Learning Test, delayed recall",        "T0",       42.8, 10,   NA,
  "Dlabac-de Lange, 2015", "Active", "Verbal Learning Test, delayed recall",        "T1",       46,   10.8, NA,
  "Dlabac-de Lange, 2015", "Active", "Digit Symbol Substitution",                  "T0",       52.6, 22.5, NA,
  "Dlabac-de Lange, 2015", "Active", "Digit Symbol Substitution",                  "T1",       60.4, 23,   NA,
  "Dlabac-de Lange, 2015", "Active", "TMT-A",                                      "T0",       43.9, 17.1, NA,
  "Dlabac-de Lange, 2015", "Active", "TMT-A",                                      "T1",       47.9, 18.4, NA,
  "Dlabac-de Lange, 2015", "Active", "TMT-B",                                      "T0",       45.6, 15.5, NA,
  "Dlabac-de Lange, 2015", "Active", "TMT-B",                                      "T1",       49.5, 20.7, NA,
  "Dlabac-de Lange, 2015", "Active", "Semantic Verbal Fluency",                    "T0",       61.8, 12.6, NA,
  "Dlabac-de Lange, 2015", "Active", "Semantic Verbal Fluency",                    "T1",       71,   17.7, NA,
  "Dlabac-de Lange, 2015", "Active", "Phonemic Verbal Fluency",                    "T0",       40.4, 10.9, NA,
  "Dlabac-de Lange, 2015", "Active", "Phonemic Verbal Fluency",                    "T1",       44.6, 8.2,  NA,
  "Dlabac-de Lange, 2015", "Active", "total error rate, %",                        "T0",       34.6, 24.1, NA,
  "Dlabac-de Lange, 2015", "Active", "total error rate, %",                        "T1",       29.1, 23,   NA,
  "Dlabac-de Lange, 2015", "Active", "perseverative error rate, %",                "T0",       13.8, 8.1,  NA,
  "Dlabac-de Lange, 2015", "Active", "perseverative error rate, %",                "T1",       15.4, 14,   NA,
  "Dlabac-de Lange, 2015", "Active", "non-perseverative error rate, %",            "T0",       20.6, 21,   NA,
  "Dlabac-de Lange, 2015", "Active", "non-perseverative error rate, %",            "T1",       13.6, 13.4, NA
)

# Sham outcomes for Dlabac‐de Lange, 2015
dlabac2015_sham <- tribble(
  ~study,                   ~group, ~measure, ~timepoint, ~mean, ~sd,
  "Dlabac-de Lange, 2015", "Sham", "SANS", "T0", 44.6, 17.3,
  "Dlabac-de Lange, 2015", "Sham", "SANS", "T1", 45.3, 18.7,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-N", "T0", 19.7, 5.4,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-N", "T1", 19.2, 6,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-P", "T0", 12.6, 4.3,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-P", "T1", 11.5, 3.8,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-G", "T0", 29.2, 5.2,
  "Dlabac-de Lange, 2015", "Sham", "PANSS-G", "T1", 28.1, 3.9,
  "Dlabac-de Lange, 2015", "Sham", "Verbal Learning Test, recall", "T0", 39.9, 9.3,
  "Dlabac-de Lange, 2015", "Sham", "Verbal Learning Test, recall", "T1", 46.6, 12.7,
  "Dlabac-de Lange, 2015", "Sham", "Verbal Learning Test, delayed recall", "T0", 41.2, 7.3,
  "Dlabac-de Lange, 2015", "Sham", "Verbal Learning Test, delayed recall", "T1", 48.7, 10.6,
  "Dlabac-de Lange, 2015", "Sham", "Digit Symbol Substitution", "T0", 66.6, 17,
  "Dlabac-de Lange, 2015", "Sham", "Digit Symbol Substitution", "T1", 70.6, 17.5,
  "Dlabac-de Lange, 2015", "Sham", "TMT-A", "T0", 45.1, 11.1,
  "Dlabac-de Lange, 2015", "Sham", "TMT-A", "T1", 50.8, 10.5,
  "Dlabac-de Lange, 2015", "Sham", "TMT-B", "T0", 42.6, 10.9,
  "Dlabac-de Lange, 2015", "Sham", "TMT-B", "T1", 48, 9.5,
  "Dlabac-de Lange, 2015", "Sham", "Semantic Verbal Fluency", "T0", 71.3, 15.8,
  "Dlabac-de Lange, 2015", "Sham", "Semantic Verbal Fluency", "T1", 69.7, 20.6,
  "Dlabac-de Lange, 2015", "Sham", "Phonemic Verbal Fluency", "T0", 48.8, 12.2,
  "Dlabac-de Lange, 2015", "Sham", "Phonemic Verbal Fluency", "T1", 49.5, 11.3,
  "Dlabac-de Lange, 2015", "Sham", "total error rate, %", "T0", 31.9, 20,
  "Dlabac-de Lange, 2015", "Sham", "total error rate, %", "T1", 30.2, 22.6,
  "Dlabac-de Lange, 2015", "Sham", "perseverative error rate, %", "T0", 18.2, 12.6,
  "Dlabac-de Lange, 2015", "Sham", "perseverative error rate, %", "T1", 17.9, 16.1,
  "Dlabac-de Lange, 2015", "Sham", "non-perseverative error rate, %", "T0", 13.9, 8.9,
  "Dlabac-de Lange, 2015", "Sham", "non-perseverative error rate, %", "T1", 12.2, 8.6
)

### Dolfus (2018) ###

# Baseline characteristics for Dolfus, 2018
dolfus2018_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Dolfus, 2018", "Active", 26, 33, 35.3, 8.3, 39.6, 11.4, "65.4%", "45.4%", "L-STS", "Neuronav", "Uni-L", "HF-RTMS", 52, 4, "High", "Coil"
)

# Active outcomes for Dolfus, 2018
dolfus2018_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~days,
  "Dolfus, 2018", "Active", "AHRS", "T0", 28.6, 6, 0,
  "Dolfus, 2018", "Active", "AHRS", "T1", 24.27, 6.1, 2
)

# Sham outcomes for Dolfus, 2018
dolfus2018_sham <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,  ~sd,
  "Dolfus, 2018", "Sham", "AHRS", "T0", 27.8, 4.5,
  "Dolfus, 2018", "Sham", "AHRS", "T1", 22.91, 7.53
)

### Du (2024) ###

## Du, 2024 Baseline
du2024_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Du, 2024",  "Active", NA,  NA, 41.9,         12.8,       NA,         NA,         "61.12%",    "75%",      "L-DMPFC", "Neuronav",   "Uni-L",       "HF-RTMS", 300,         20,              "low",            "coil"
)

## Du, 2024 Active Outcomes – Outcome Block 1 (Measure1)
du2024_active_block1 <- tribble(
  ~study,     ~group,   ~measure,   ~timepoint, ~mean,   ~sd,   ~days,
  "Du, 2024", "Active", "Measure1", "T0",       14.5,    6.66,  0,
  "Du, 2024", "Active", "Measure1", "T1",       9.88,    5.63,  26
)

## Du, 2024 Active Outcomes – Outcome Block 2 (Multiple Measures)
du2024_active_block2 <- tribble(
  ~study,     ~group,   ~measure,     ~timepoint, ~mean, ~sd,  ~days,
  "Du, 2024", "Active", "Measure2a", "T1",       36.1,  9.6,  NA,
  "Du, 2024", "Active", "Measure2b", "T1",       13.2,  4.57, NA,
  "Du, 2024", "Active", "Measure2c", "T1",       9.6,   5.1,  NA
)

### Du (2022) ###

## Du, 2022 Baseline
du2022_baseline <- tribble(
  ~study,    ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Du, 2022", "Active", 25, 22, 45.9, 10, 45.1, 10.4, "48%", "50%", "L-DLPFC", "10-20EEG", "Uni-L", "HF-RTMS", 340, 20, "low", "Deg-180"
)

## Du, 2022 Active Outcomes
du2022_active <- tribble(
  ~study,    ~group, ~measure,           ~timepoint, ~mean,  ~sd,   ~n,   ~days,
  "Du, 2022", "Active", "PRM number correct", "T0",     14.7,   4,    25,   NA,
  "Du, 2022", "Active", "PRM number correct", "T1",     15.1,   3.8,  22,   NA,
  "Du, 2022", "Active", "SANS",               "T0",     88.1,   17.9, 25,   0,
  "Du, 2022", "Active", "SANS",               "T1",     79,     21.5, 22,   28,
  "Du, 2022", "Active", "PANSS-T",            "T0",     72.1,   15.3, 25,   0,
  "Du, 2022", "Active", "PANSS-T",            "T1",     65.3,   15.9, 22,   28,
  "Du, 2022", "Active", "PANSS-P",            "T0",     12.6,   4,    25,   NA,
  "Du, 2022", "Active", "PANSS-P",            "T1",     12.4,   4,    22,   28,
  "Du, 2022", "Active", "PANSS-N",            "T0",     26.7,   7.5,  25,   NA,
  "Du, 2022", "Active", "PANSS-N",            "T1",     22.8,   8.8,  22,   NA,
  "Du, 2022", "Active", "PANSS-G",            "T0",     33.8,   6,    25,   NA,
  "Du, 2022", "Active", "PANSS-G",            "T1",     30.3,   6.6,  22,   NA
)

## Du, 2022 Sham Outcomes
du2022_sham <- tribble(
  ~study,    ~group, ~measure,   ~timepoint, ~mean,  ~sd,   ~n,   ~days,
  "Du, 2022", "Sham", "PRM number correct", "T0", 15.5, 3.7, 22, NA,
  "Du, 2022", "Sham", "PRM number correct", "T1", 14.9, 4.4, 19, NA,
  "Du, 2022", "Sham", "SANS",               "T0", 88.1, 15.2, 22, NA,
  "Du, 2022", "Sham", "SANS",               "T1", 83.6, 19.2, 19, NA,
  "Du, 2022", "Sham", "PANSS-T",            "T0", 69.3, 11.5, 22, NA,
  "Du, 2022", "Sham", "PANSS-T",            "T1", 61.9, 16.6, 19, NA,
  "Du, 2022", "Sham", "PANSS-P",            "T0", 10,   3.3, 22, NA,
  "Du, 2022", "Sham", "PANSS-P",            "T1", 10.5, 3.9, 19, NA,
  "Du, 2022", "Sham", "PANSS-N",            "T0", 25.9, 6.9, 22, NA,
  "Du, 2022", "Sham", "PANSS-N",            "T1", 22.6, 7.5, 19, NA,
  "Du, 2022", "Sham", "PANSS-G",            "T0", 33.4, 5.4, 22, NA,
  "Du, 2022", "Sham", "PANSS-G",            "T1", 31.7, 6.2, 19, NA
)

### Farhang (2024) ###

## Farhang, 2024 Baseline
farhang2024_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,                ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Farhang, 2024", "Active", 30, 30, 38.57,       8.41,       38.5,         9.02,      "90%",      "83.3%",   "L-DLPFC_R-SORB",     "Uni-L",       "10-20EEG",   "TDCS",     90,          3,              "low",            "15s"
)

## Farhang, 2024 Active Outcomes
farhang2024_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~days,
  "Farhang, 2024", "Active", "WM",    "T0",       7.8,   2.09,  0,
  "Farhang, 2024", "Active", "WM",    "T1",       10.4,  1.58,  6
)

### Fitzeral (2008) ###

## Fitzerald, 2008 Baseline
fitzerald2008_baseline <- tribble(
  ~study,           ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,     ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Fitzerald, 2008", "Active", 10, 10, 37.2,         10.4,      33.2,         9.8,       NA,          NA,        "Bi-DLPFC",  "cm",          "Bi-Seq-L/R",    "LF-RTMS", 287.55,       15,            "low",            "Deg-90"
)

## Fitzerald, 2008 Active Outcomes
fitzerald2008_active <- tribble(
  ~study,           ~group, ~measure,   ~timepoint, ~mean,  ~sd,   ~days,
  "Fitzerald, 2008", "Active", "SANSS",   "T0",       55.5,  4.1,  0,
  "Fitzerald, 2008", "Active", "SANSS",   "T1",       38.8,  11,   19,
  "Fitzerald, 2008", "Active", "PANSS-P", "T0",       8.8,   4.1,  0,
  "Fitzerald, 2008", "Active", "PANSS-P", "T1",       10.8,  7,    19,
  "Fitzerald, 2008", "Active", "PANSS-N", "T0",       16.8,  3.5,  0,
  "Fitzerald, 2008", "Active", "PANSS-N", "T1",       15.5,  3.1,  19,
  "Fitzerald, 2008", "Active", "PANSS-T", "T0",       67.3,  11.7, 0,
  "Fitzerald, 2008", "Active", "PANSS-T", "T1",       65.4,  11,   19
)

### Fitzerald (2014) ###

## Fitzerald, 2014 Baseline
fitzerald2014_baseline <- tribble(
  ~study,           ~group,     ~Na,   ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, 
  ~Na_pct_male,     ~Nc_pct_male, ~target,             ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Fitzerald, 2014", "Bi Active", 11,    NA, 39.3,         11.7,       NA,           NA,         
  "62.5%",          NA,         "Bi-DLPFC_Bi-TPJ",   "10-20EEG",    "Bi-Sim",      "TDCS",     300,          15,              "low",            "30s",
  "Fitzerald, 2014", "L Active",  13,    NA, NA,           NA,         NA,           NA,         
  NA,               NA,         "L-DLPFC_L-TPJ",     "Uni-L",       NA,            NA,         NA,           NA,             NA,              NA
)


## Fitzerald, 2014 Active Outcomes – Bi Active
fitzerald2014_active_Bi <- tribble(
  ~study,         ~group,     ~measure,   ~timepoint, ~mean, ~sd, ~days,
  "Fitzerald, 2014", "Bi Active", "PANSS-P",  "T0",       12.8, 2.7,  0,
  "Fitzerald, 2014", "Bi Active", "PANSS-P",  "T1",       10.5, 4.4,  21,
  "Fitzerald, 2014", "Bi Active", "PANSS-N",  "T0",       12,   3.3,  0,
  "Fitzerald, 2014", "Bi Active", "PANSS-N",  "T1",       10,   2.2,  21,
  "Fitzerald, 2014", "Bi Active", "PANSS-T",  "T0",       67.6, 12.8, 0,
  "Fitzerald, 2014", "Bi Active", "PANSS-T",  "T1",       57.2, 12.6, 21,
  "Fitzerald, 2014", "Bi Active", "SANS",     "T0",       30.2, 12.4, 0,
  "Fitzerald, 2014", "Bi Active", "SANS",     "T1",       29.6, 11.7, 21
)

## Fitzerald, 2014 Active Outcomes – L Active
fitzerald2014_active_L <- tribble(
  ~study,           ~group,    ~measure,   ~timepoint, ~mean, ~sd,  ~days,
  "Fitzerald, 2014", "L Active", "PANSS-P",  "T0",       13.5,  4.2, NA,
  "Fitzerald, 2014", "L Active", "PANSS-P",  "T1",       12.3,  3.4, NA,
  "Fitzerald, 2014", "L Active", "PANSS-N",  "T0",       20.2,  3.9, NA,
  "Fitzerald, 2014", "L Active", "PANSS-N",  "T1",       19.9,  3.9, NA,
  "Fitzerald, 2014", "L Active", "PANSS-T",  "T0",       88.8,  8.5, NA,
  "Fitzerald, 2014", "L Active", "PANSS-T",  "T1",       84.9,  9.9, NA,
  "Fitzerald, 2014", "L Active", "SANS",     "T0",       58.8,  8.3, NA,
  "Fitzerald, 2014", "L Active", "SANS",     "T1",       59.8,  9.8, NA
)

### Francis (2019) ###

## Francis, 2019 Baseline
francis2019_baseline <- tribble(
  ~study,        ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,      ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Francis, 2019", "Active", 9, 10, 23.4, 3.1, 22.3, 2, "77.8%", "80%", "Bi-DLPFC", "cm", "Bi-Seq-Cnt", "HF-RTMS", 155, 10, "low", "coil"
)

## Francis, 2019 Active Outcomes
francis2019_active <- tribble(
  ~study,         ~group, ~measure,                    ~timepoint, ~mean,   ~sd,   ~days,
  "Francis, 2019", "Active", "BACS Verbal Memory",      "T0",       36.67,   10.17, NA,
  "Francis, 2019", "Active", "BACS Verbal Memory",      "T1",       37.11,   12.59, NA,
  "Francis, 2019", "Active", "BACS Digit Sequencing",   "T0",       34.11,   12.76, NA,
  "Francis, 2019", "Active", "BACS Digit Sequencing",   "T1",       36.56,   11.3,  NA,
  "Francis, 2019", "Active", "BACS Token Motor Total",  "T0",       29,      17.04, 0,
  "Francis, 2019", "Active", "BACS Token Motor Total",  "T1",       29.78,   20.99, NA,
  "Francis, 2019", "Active", "BACS Semantic and Letter Fluency", "T0", 38.67, 11.27, NA,
  "Francis, 2019", "Active", "BACS Semantic and Letter Fluency", "T1", 40.56, 13.29, 12,
  "Francis, 2019", "Active", "BACS Symbol Coding",      "T0",       38.11,   8.88,  NA,
  "Francis, 2019", "Active", "BACS Symbol Coding",      "T1",       39.22,   9.96,  NA,
  "Francis, 2019", "Active", "BACS Tower of London",    "T0",       45.33,   10.68, NA,
  "Francis, 2019", "Active", "BACS Tower of London",    "T1",       46.67,   9.79,  NA,
  "Francis, 2019", "Active", "BACS Composite Score",    "T0",       27.56,   11.56, NA,
  "Francis, 2019", "Active", "BACS Composite Score",    "T1",       29.78,   11.41, NA
)

### Frohlich (2016) ###

## Frohlich, 2016 Baseline
frohlich2016_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,             ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Frohlich, 2016", "Active", 13, 13, 43.38,      12.64,     40,         10.74,    "84.61%",    "69.23%",   "L-DLPFC_L-TPJ",   "10-20EEG",    "Uni-L",    "TDCS",     150, 5, "low", "40s"
)

## Frohlich, 2016 Active Outcomes
frohlich2016_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,    ~sd,    ~days,
  "Frohlich, 2016", "Active", "AHRS",    "T0",      27,       6.9,    NA,
  "Frohlich, 2016", "Active", "AHRS",    "T1",      20.62,    8.13,   NA,
  "Frohlich, 2016", "Active", "PANSS-T", "T0",      73.15,   12.9,    NA,
  "Frohlich, 2016", "Active", "PANSS-T", "T1",      73.38,   14.24,   NA,
  "Frohlich, 2016", "Active", "PANSS-P", "T0",      20.54,   4.77,    NA,
  "Frohlich, 2016", "Active", "PANSS-P", "T1",      21.31,   4.87,    NA,
  "Frohlich, 2016", "Active", "PANSS-N", "T0",      19,      7.56,     0,
  "Frohlich, 2016", "Active", "PANSS-N", "T1",      19.23,   6.82,     5,
  "Frohlich, 2016", "Active", "PANSS-G", "T0",      33.62,   6.61,    NA,
  "Frohlich, 2016", "Active", "PANSS-G", "T1",      32.85,   7.45,    NA
)

## Frohlich, 2016 Sham Outcomes
frohlich2016_sham <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,    ~sd,   ~days,
  "Frohlich, 2016", "Sham", "AHRS",    "T0",      26.69,   6.3,    NA,
  "Frohlich, 2016", "Sham", "AHRS",    "T1",      18.15,   10.77,  NA,
  "Frohlich, 2016", "Sham", "PANSS-T", "T0",      66.92,   17.17,  NA,
  "Frohlich, 2016", "Sham", "PANSS-T", "T1",      63.85,   14.25,  NA,
  "Frohlich, 2016", "Sham", "PANSS-P", "T0",      20.08,   6.03,   NA,
  "Frohlich, 2016", "Sham", "PANSS-P", "T1",      18.15,   5.71,   NA,
  "Frohlich, 2016", "Sham", "PANSS-N", "T0",      16,      6.65,   NA,
  "Frohlich, 2016", "Sham", "PANSS-N", "T1",      16.31,   6.2,    NA,
  "Frohlich, 2016", "Sham", "PANSS-G", "T0",      30.85,   7.49,   NA,
  "Frohlich, 2016", "Sham", "PANSS-G", "T1",      29.38,   5.71,   NA
)

### Ghao (2024) ###

## Ghao, 2024 Baseline
ghao2024_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Ghao, 2024", "Active", 50, 50, 56.24,       6.98,       58.5,       4.74,       "56%",      "58%",      "L-DLPFC", "10-20EEG",    "Uni-L",       "ITBS",     64,         20,              "low",            "deg-90"
)

## Ghao, 2024 Active Outcomes
ghao2024_active <- tribble(
  ~study,      ~group,   ~measure,  ~timepoint, ~mean,   ~sd,   ~days,
  "Ghao, 2024", "Active", "PANSS-P", "T0",       8.28,    2,     NA,
  "Ghao, 2024", "Active", "PANSS-P", "T1",       8.16,    1.92,  NA,
  
  "Ghao, 2024", "Active", "PANSS-N", "T0",       23.64,   3.21,  0,
  "Ghao, 2024", "Active", "PANSS-N", "T1",       19.74,   2.31,  NA,  # Days provided only for one row? (Adjust if needed)
  
  "Ghao, 2024", "Active", "PANSS-G", "T0",       31.18,   2.98,  NA,
  "Ghao, 2024", "Active", "PANSS-G", "T1",       31.00,   3.03,  21,
  
  "Ghao, 2024", "Active", "PANSS-T", "T0",       63.02,   4.95,  NA,
  "Ghao, 2024", "Active", "PANSS-T", "T1",       58.82,   4.43,  NA,
  
  "Ghao, 2024", "Active", "SANS",    "T0",       58.84,   5.60,  NA,
  "Ghao, 2024", "Active", "SANS",    "T1",       51.70,   4.57,  NA
)

## Ghao, 2024 Sham Outcomes
ghao2024_sham <- tribble(
  ~study,      ~group,   ~measure,  ~timepoint, ~mean,   ~sd,   ~n,
  "Ghao, 2024", "Sham", "PANSS-P", "T0",       7.92,    7.92,  NA,
  "Ghao, 2024", "Sham", "PANSS-P", "T1",       7.72,    1.84,  NA,
  
  "Ghao, 2024", "Sham", "PANSS-N", "T0",       23.72,   3.65,  NA,
  "Ghao, 2024", "Sham", "PANSS-N", "T1",       23.38,   3.58,  NA,
  
  "Ghao, 2024", "Sham", "PANSS-G", "T0",       32.04,   2.21,  NA,
  "Ghao, 2024", "Sham", "PANSS-G", "T1",       31.70,   2.21,  NA,
  
  "Ghao, 2024", "Sham", "PANSS-T", "T0",       63.68,   4.46,  NA,
  "Ghao, 2024", "Sham", "PANSS-T", "T1",       62.94,   4.30,  NA,
  
  "Ghao, 2024", "Sham", "SANS",    "T0",       58.98,   5.55,  NA,
  "Ghao, 2024", "Sham", "SANS",    "T1",       56.84,   4.94,  NA
)

### Garcia (2024) ###

## Garcia, 2024 Baseline
garcia2024_baseline <- tribble(
  ~study,                 ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,              ~lateralisation, ~targeting_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "García-Fernándes, 2024", "Active", 71, 68, 32.4,        11.2,       31.9,        10.8,       "62%",      "72.1%",    "L_DLPFC-R_DLPFC",   "Uni-L",           "10-20EEG",       "TDCS",     200,         10,              "low",            "30s"
)

## Garcia, 2024 Active Outcomes
garcia2024_active <- tribble(
  ~study,                 ~group, ~measure,             ~timepoint, ~mean,  ~sd,   ~days,
  "García-Fernándes, 2024", "Active", "Speed of processing", "T0",      40.4,   9.3,   NA,
  "García-Fernándes, 2024", "Active", "Speed of processing", "T1",      40.4,   8.9,   NA,
  
  "García-Fernándes, 2024", "Active", "Attention",           "T0",      41.9,   9.7,   NA,
  "García-Fernándes, 2024", "Active", "Attention",           "T1",      41.4,   9.3,   NA,
  
  "García-Fernándes, 2024", "Active", "Working memory",      "T0",      45.6,   10.9,  0,
  "García-Fernándes, 2024", "Active", "Working memory",      "T1",      49.3,   11,    12,
  
  "García-Fernándes, 2024", "Active", "Verbal learning",     "T0",      44.8,   13.6,  NA,
  "García-Fernándes, 2024", "Active", "Verbal learning",     "T1",      45.6,   12.2,  NA,
  
  "García-Fernándes, 2024", "Active", "Visual learning",     "T0",      43.1,   12.2,  NA,
  "García-Fernándes, 2024", "Active", "Visual learning",     "T1",      43.4,   11.3,  NA,
  
  "García-Fernándes, 2024", "Active", "Problem solving",     "T0",      46.5,   10.9,  NA,
  "García-Fernándes, 2024", "Active", "Problem solving",     "T1",      46.7,   10.4,  NA,
  
  "García-Fernándes, 2024", "Active", "Social Cognition",    "T0",      37.9,   12.6,  NA,
  "García-Fernándes, 2024", "Active", "Social Cognition",    "T1",      37.1,   11.9,  NA
)

## Garcia, 2024 Sham Outcomes
garcia2024_sham <- tribble(
  ~study,                 ~group, ~measure,             ~timepoint, ~mean,  ~sd,   ~days,
  "García-Fernándes, 2024", "Sham", "Speed of processing", "T0",      37.5,   8.7,   NA,
  "García-Fernándes, 2024", "Sham", "Speed of processing", "T1",      37.7,   8.7,   NA,
  
  "García-Fernándes, 2024", "Sham", "Attention",           "T0",      39.1,   1.4,   NA,
  "García-Fernándes, 2024", "Sham", "Attention",           "T1",      39.1,   11.4,  NA,
  
  "García-Fernándes, 2024", "Sham", "Working memory",      "T0",      42.1,   12.4,  NA,
  "García-Fernándes, 2024", "Sham", "Working memory",      "T1",      43.2,   12.6,  NA,
  
  "García-Fernándes, 2024", "Sham", "Verbal learning",     "T0",      42.1,   11.9,  NA,
  "García-Fernándes, 2024", "Sham", "Verbal learning",     "T1",      42.7,   11,    NA,
  
  "García-Fernándes, 2024", "Sham", "Visual learning",     "T0",      41.5,   11.9,  NA,
  "García-Fernándes, 2024", "Sham", "Visual learning",     "T1",      41.8,   11.7,  NA,
  
  "García-Fernándes, 2024", "Sham", "Problem solving",     "T0",      42,     12.1,  NA,
  "García-Fernándes, 2024", "Sham", "Problem solving",     "T1",      42.7,   11.8,  NA,
  
  "García-Fernándes, 2024", "Sham", "Social Cognition",    "T0",      39.4,   14.3,  NA,
  "García-Fernándes, 2024", "Sham", "Social Cognition",    "T1",      38.5,   12.6,  NA
)

### Garg (2016) ###

## Garg, 2016 Baseline
garg2016_baseline <- tribble(
  ~study,     ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,      ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Garg, 2016", "Active", 20, 20, 32.4, 8.44, 30.75, 7.9, "85%", "80%", "Cereb-Verm", "cm", "Bi-Sim", "DTMS", 117, 10, "low", "deg-45"
)

## Garg, 2016 Active Outcomes
garg2016_active <- tribble(
  ~study,     ~group,   ~measure,  ~timepoint, ~mean,    ~sd,   ~days,
  "Garg, 2016", "Active", "PANSS-P", "T0",       26.35,   6.12,  NA,
  "Garg, 2016", "Active", "PANSS-P", "T1",       24.35,   6.3,   NA,
  
  "Garg, 2016", "Active", "PANSS-N", "T0",       25.30,   7.97,  0,
  "Garg, 2016", "Active", "PANSS-N", "T1",       22,      7.93,  NA,
  
  "Garg, 2016", "Active", "PANSS-G", "T0",       44.65,   10.32, NA,
  "Garg, 2016", "Active", "PANSS-G", "T1",       41.35,   9.66,  14,
  
  "Garg, 2016", "Active", "PANSS-T", "T0",       96.3,    20.36, NA,
  "Garg, 2016", "Active", "PANSS-T", "T1",       87.6,    19.6,  NA
)

## Garg, 2016 Sham Outcomes
garg2016_sham <- tribble(
  ~study,     ~group,   ~measure,  ~timepoint, ~mean,   ~sd,   ~n,
  "Garg, 2016", "Sham", "PANSS-P", "T0",       23.95,  5.51,  NA,
  "Garg, 2016", "Sham", "PANSS-P", "T1",       22.45,  5.78,  NA,
  
  "Garg, 2016", "Sham", "PANSS-N", "T0",       20.75,  9.23,  NA,
  "Garg, 2016", "Sham", "PANSS-N", "T1",       18.9,   8.26,  NA,
  
  "Garg, 2016", "Sham", "PANSS-G", "T0",       37.25,  8.54,  NA,
  "Garg, 2016", "Sham", "PANSS-G", "T1",       35.05,  8.34,  NA,
  
  "Garg, 2016", "Sham", "PANSS-T", "T0",       81.5,   14.55, NA,
  "Garg, 2016", "Sham", "PANSS-T", "T1",       76.4,   13.84, NA
)

### Gogler (2017) ###

## Gogler, 2017 Baseline
gogler2017_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,             ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Gogler, 2017", "Active", 10, 10, 33.2, 7.67, 39.9, 9.65, "40%", "30%", "L-DLPFC_R-SORB", "10-20EEG", "Uni-L", "TDCS", 20, 1, "Single", "30s"
)

# Active Outcomes
# In Gogler (2017) three measures are reported. (A note explains:
#• C = visual perceptual processing speed (elements/s)
#• K = visual short-term memory capacity (number of elements)
#• α = efficiency of top–down control)

## Gogler, 2017 Active Outcomes
gogler2017_active <- tribble(
  ~study,       ~group,   ~measure, ~timepoint, ~mean,   ~sd,   ~days,
  "Gogler, 2017", "Active", "C",      "T0",       31.36,   16.83, NA,
  "Gogler, 2017", "Active", "C",      "T1",       34.33,   19.02, NA,
  
  "Gogler, 2017", "Active", "K",      "T0",       3.4,     0.64,  NA,
  "Gogler, 2017", "Active", "K",      "T1",       3.47,    0.59,  NA,
  
  "Gogler, 2017", "Active", "α",      "T0",       0.36,    0.15,  0,
  "Gogler, 2017", "Active", "α",      "T1",       0.4,     0.17,  1
)

## Gogler, 2017 Sham Outcomes
gogler2017_sham <- tribble(
  ~study,       ~group,   ~measure, ~timepoint, ~mean,   ~sd,
  "Gogler, 2017", "Sham", "C",      "T0",       27.73,   25.69,
  "Gogler, 2017", "Sham", "C",      "T1",       39.02,   41.92,
  
  "Gogler, 2017", "Sham", "K",      "T0",       2.63,    0.75,
  "Gogler, 2017", "Sham", "K",      "T1",       3.06,    0.69,
  
  "Gogler, 2017", "Sham", "α",      "T0",       0.34,    0.21,
  "Gogler, 2017", "Sham", "α",      "T1",       0.38,    0.18
)

### Gomes (2018) ###

## Gomes, 2018 Baseline
gomes2018_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,           ~target,                  ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Gomes, 2018", "Active", 12, 12, 39.17,       9.34,       33.75,       12.08,      "83.33%",   "58.33%",   "L-DLPFC_R-DLPFC",      "10-20EEG",    "Uni-L",      "TDCS",     200,        10,             "low",            "30s"
)

## Gomes, 2018 Active Outcomes
gomes2018_active <- tribble(
  ~study,      ~group,      ~measure,          ~timepoint, ~mean,   ~sd,    ~days,
  "Gomes, 2018", "Active", "Working memory",   "T0",       45.75,   6.166,  NA,
  "Gomes, 2018", "Active", "Working memory",   "T1",       43.08,   6.443,  NA,
  
  "Gomes, 2018", "Active", "Speed of processing", "T0",    43.00,   9.353,  NA,
  "Gomes, 2018", "Active", "Speed of processing", "T1",    46.17,   6.858,  NA,
  
  "Gomes, 2018", "Active", "Attention",        "T0",       42.42,   10.357, 0,
  "Gomes, 2018", "Active", "Attention",        "T1",       43.66,   11.604, 12,
  
  "Gomes, 2018", "Active", "Verbal learning",  "T0",       35.17,   10.184, NA,
  "Gomes, 2018", "Active", "Verbal learning",  "T1",       35.00,   12.851, NA,
  
  "Gomes, 2018", "Active", "Visual learning",  "T0",       29.42,   13.406, NA,
  "Gomes, 2018", "Active", "Visual learning",  "T1",       34.67,   15.727, NA,
  
  "Gomes, 2018", "Active", "Problem solving",  "T0",       42.17,   7.136,  NA,
  "Gomes, 2018", "Active", "Problem solving",  "T1",       42.25,   6.131,  NA,
  
  "Gomes, 2018", "Active", "PANSS-P",          "T0",       16.25,   2.979,  NA,
  "Gomes, 2018", "Active", "PANSS-P",          "T1",       15.33,   3.845,  NA,
  
  "Gomes, 2018", "Active", "PANSS-N",          "T0",       23.75,   5.334,  NA,
  "Gomes, 2018", "Active", "PANSS-N",          "T1",       19.92,   5.022,  NA,
  
  "Gomes, 2018", "Active", "PANSS-G",          "T0",       41.58,   9.283,  NA,
  "Gomes, 2018", "Active", "PANSS-G",          "T1",       35.58,   8.487,  NA,
  
  "Gomes, 2018", "Active", "PANSS-T",          "T0",       81.58,   15.345, NA,
  "Gomes, 2018", "Active", "PANSS-T",          "T1",       70.83,   15.103, NA
)

## Gomes, 2018 Sham Outcomes
gomes2018_sham <- tribble(
  ~study,      ~group,      ~measure,          ~timepoint, ~mean,   ~sd,    ~days,
  "Gomes, 2018", "Sham",  "Working memory",    "T0",       40.25,   8.487, NA,
  "Gomes, 2018", "Sham",  "Working memory",    "T1",       39.08,   6.962, NA,
  
  "Gomes, 2018", "Sham",  "Speed of processing", "T0",     39.90,   11.015, NA,
  "Gomes, 2018", "Sham",  "Speed of processing", "T1",     40.50,   10.219, NA,
  
  "Gomes, 2018", "Sham",  "Attention",         "T0",       37.25,   14.618, NA,
  "Gomes, 2018", "Sham",  "Attention",         "T1",       38.50,   14.687, NA,
  
  "Gomes, 2018", "Sham",  "Verbal learning",   "T0",       40.33,   8.348, NA,
  "Gomes, 2018", "Sham",  "Verbal learning",   "T1",       39.33,   15.934, NA,
  
  "Gomes, 2018", "Sham",  "Visual learning",   "T0",       28.66,   11.327, NA,
  "Gomes, 2018", "Sham",  "Visual learning",   "T1",       32.00,   14.653, NA,
  
  "Gomes, 2018", "Sham",  "Problem solving",   "T0",       37.67,   7.932, NA,
  "Gomes, 2018", "Sham",  "Problem solving",   "T1",       39.83,   7.724, NA,
  
  "Gomes, 2018", "Sham",  "PANSS-P",           "T0",       13.25,   3.048, NA,
  "Gomes, 2018", "Sham",  "PANSS-P",           "T1",       13.08,   3.741, NA,
  
  "Gomes, 2018", "Sham",  "PANSS-N",           "T0",       21.67,   8.036, NA,
  "Gomes, 2018", "Sham",  "PANSS-N",           "T1",       21.50,   8.105, NA,
  
  "Gomes, 2018", "Sham",  "PANSS-G",           "T0",       36.09,   9.075, NA,
  "Gomes, 2018", "Sham",  "PANSS-G",           "T1",       35.50,   9.491, NA,
  
  "Gomes, 2018", "Sham",  "PANSS-T",           "T0",       71.00,   19.052, NA,
  "Gomes, 2018", "Sham",  "PANSS-T",           "T1",       70.17,   20.264, NA
)

### Guan (2020) ###

## Guan, 2020 Baseline
guan2020_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Guan, 2020", "Active", 21, 20, 55.5,        7.3,        49.3,        10.2,       "100%",     "100%",     "L-DLPFC", "Neuronav",    "Uni-L",       "HF-RTMS", 540,         40,             "low",            "coil"
)

## Guan, 2020 Active Outcomes
guan2020_active <- tribble(
  ~study,       ~group,   ~measure,                           ~timepoint, ~mean,  ~sd,   ~days,
  "Guan, 2020", "Active", "PANSS-T",                          "T0",       72.3,   12.9,  NA,
  "Guan, 2020", "Active", "PANSS-T",                          "T1",       59.2,   14.4,  NA,
  
  "Guan, 2020", "Active", "PANSS-P",                          "T0",       11.3,   4.5,   NA,
  "Guan, 2020", "Active", "PANSS-P",                          "T1",       10.7,   4.3,   NA,
  
  "Guan, 2020", "Active", "PANSS-N",                          "T0",       28.7,   6.7,   NA,
  "Guan, 2020", "Active", "PANSS-N",                          "T1",       20.9,   5.9,   NA,
  
  "Guan, 2020", "Active", "PANSS-G",                          "T0",       32.3,   7.6,   NA,
  "Guan, 2020", "Active", "PANSS-G",                          "T1",       27.6,   7.5,   NA,
  
  "Guan, 2020", "Active", "RBANS Immediate memory",           "T0",       52,     12.9,  NA,
  "Guan, 2020", "Active", "RBANS Immediate memory",           "T1",       82.1,   21.6,  NA,
  
  "Guan, 2020", "Active", "RBANS Attention",                  "T0",       70.5,   13.3,  0,
  "Guan, 2020", "Active", "RBANS Attention",                  "T1",       70.8,   16.4,  NA,
  
  "Guan, 2020", "Active", "RBANS Visuospatial/constructional", "T0",       72.2,   17.2,  0,
  "Guan, 2020", "Active", "RBANS Visuospatial/constructional", "T1",       82.1,   18.6,  NA,
  
  "Guan, 2020", "Active", "RBANS Delayed memory",             "T0",       65.4,   20.1,  NA,
  "Guan, 2020", "Active", "RBANS Delayed memory",             "T1",       90.7,   21.1,  56,
  
  "Guan, 2020", "Active", "RBANS Language",                   "T0",       79.3,   15.2,  NA,
  "Guan, 2020", "Active", "RBANS Language",                   "T1",       84.6,   9.5,   NA,
  
  "Guan, 2020", "Active", "RBANS-T",                          "T0",       61.5,   12.7,  NA,
  "Guan, 2020", "Active", "RBANS-T",                          "T1",       78.1,   16.2,  NA
)

## Guan, 2020 Sham Outcomes
guan2020_sham <- tribble(
  ~study,       ~group,   ~measure,                           ~timepoint, ~mean,   ~sd,   ~days,
  "Guan, 2020", "Sham",  "PANSS-T",                          "T0",       79.9,    16.9,  NA,
  "Guan, 2020", "Sham",  "PANSS-T",                          "T1",       66.8,    22.7,  NA,
  
  "Guan, 2020", "Sham",  "PANSS-P",                          "T0",       11.4,    3.6,   NA,
  "Guan, 2020", "Sham",  "PANSS-P",                          "T1",       10.0,    2.8,   NA,
  
  "Guan, 2020", "Sham",  "PANSS-N",                          "T0",       31.9,    8.4,   NA,
  "Guan, 2020", "Sham",  "PANSS-N",                          "T1",       23.8,    10,    NA,
  
  "Guan, 2020", "Sham",  "PANSS-G",                          "T0",       36.6,    8.7,   NA,
  "Guan, 2020", "Sham",  "PANSS-G",                          "T1",       33.0,    10.9,  NA,
  
  "Guan, 2020", "Sham",  "RBANS Immediate memory",           "T0",       50.9,   10.5,  NA,
  "Guan, 2020", "Sham",  "RBANS Immediate memory",           "T1",       69.7,   21.4,  NA,
  
  "Guan, 2020", "Sham",  "RBANS Attention",                  "T0",       63.1,   15.4,  NA,
  "Guan, 2020", "Sham",  "RBANS Attention",                  "T1",       66.8,   13.5,  NA,
  
  "Guan, 2020", "Sham",  "RBANS Visuospatial/constructional", "T0",       69.9,   15.5,  NA,
  "Guan, 2020", "Sham",  "RBANS Visuospatial/constructional", "T1",       78.5,   13.3,  NA,
  
  "Guan, 2020", "Sham",  "RBANS Delayed memory",             "T0",       64.2,   20.3,  NA,
  "Guan, 2020", "Sham",  "RBANS Delayed memory",             "T1",       86.0,   18.5,  NA,
  
  "Guan, 2020", "Sham",  "RBANS Language",                   "T0",       74.4,   15.8,  NA,
  "Guan, 2020", "Sham",  "RBANS Language",                   "T1",       85.8,   17,    NA,
  
  "Guan, 2020", "Sham",  "RBANS-T",                          "T0",       58.3,   12.1,  NA,
  "Guan, 2020", "Sham",  "RBANS-T",                          "T1",       71.3,   14.8,  NA
)

### Guleken (2020) ###

## Guleken, 2020 Baseline
guleken2020_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,      ~target_method, ~lateralisation, ~technique,  ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Guleken, 2020", "Active", 11, 10, 36.45,      8.58,       33.4,       12.11,      "72.72%",    "60%",      "Bi-DLPFC",   "cm",           "Bi-Seq-Cnt",   "HF-RTMS", 40000,       20,             "low",            "Deg-90"
)

## Guleken, 2020 Active Outcomes
# (According to the table, a “Time-points Days” row indicates T0 = 0 and T1 = 28.)
guleken2020_active <- tribble(
  ~study,       ~group, ~measure,                         ~timepoint, ~mean,    ~sd,    ~days,
  "Guleken, 2020", "Active", "PANSS",                     "T0",       81.82,   8.94,   0,
  "Guleken, 2020", "Active", "PANSS",                     "T1",       63.73,   7.24,   28,
  
  "Guleken, 2020", "Active", "SANS",                      "T0",       52.64,   13.14,  0,
  "Guleken, 2020", "Active", "SANS",                      "T1",       31.64,   9.94,   28,
  
  "Guleken, 2020", "Active", "WSCT total correct responses", "T0",    67.27,   15.087, 0,
  "Guleken, 2020", "Active", "WSCT total correct responses", "T1",    65.00,   14.241, 28,
  
  "Guleken, 2020", "Active", "WSCT perseverative errors", "T0",     32.73,   14.423, 0,
  "Guleken, 2020", "Active", "WSCT perseverative errors", "T1",     31.27,   13.161, 28,
  
  "Guleken, 2020", "Active", "DST forward",               "T0",       5.73,    0.9,    0,
  "Guleken, 2020", "Active", "DST forward",               "T1",       5.91,    0.94,   28,
  
  "Guleken, 2020", "Active", "DST backwards",             "T0",       4.00,    0.63,   0,
  "Guleken, 2020", "Active", "DST backwards",             "T1",       4.36,    0.5,    28,
  
  "Guleken, 2020", "Active", "Total time",                "T0",       208.31,  40.89,  0,
  "Guleken, 2020", "Active", "Total time",                "T1",       177.32,  22.52,  28,
  
  "Guleken, 2020", "Active", "Total errors",              "T0",       1.09,    2.46,   0,
  "Guleken, 2020", "Active", "Total errors",              "T1",       0.45,    1.21,   28,
  
  "Guleken, 2020", "Active", "Interference",              "T0",       60.307,  23.41,  0,
  "Guleken, 2020", "Active", "Interference",              "T1",       44.44,   10.33,  28
)

## Gulken, 2020 Sham Outcomes
guleken2020_sham <- tribble(
  ~study,       ~group, ~measure,                         ~timepoint, ~mean,    ~sd,    ~days,
  "Guleken, 2020", "Sham", "PANSS",                     "T0",       79.7,    7.61,   0,
  "Guleken, 2020", "Sham", "PANSS",                     "T1",       81.6,    9.879,  28,
  
  "Guleken, 2020", "Sham", "SANS",                      "T0",       43.1,    15.509, 0,
  "Guleken, 2020", "Sham", "SANS",                      "T1",       43.6,    9.879,  28,
  
  "Guleken, 2020", "Sham", "WSCT total correct responses", "T0",    55.80,   19.691, 0,
  "Guleken, 2020", "Sham", "WSCT total correct responses", "T1",    63.20,   22.034, 28,
  
  "Guleken, 2020", "Sham", "WSCT perseverative errors", "T0",     39.30,   17.455, 0,
  "Guleken, 2020", "Sham", "WSCT perseverative errors", "T1",     32.20,   17.800, 28,
  
  "Guleken, 2020", "Sham", "DST forward",               "T0",       5.3,     1.05,   0,
  "Guleken, 2020", "Sham", "DST forward",               "T1",       5.1,     0.56,   28,
  
  "Guleken, 2020", "Sham", "DST backwards",             "T0",       3.4,     0.96,   0,
  "Guleken, 2020", "Sham", "DST backwards",             "T1",       3.7,     0.82,   28,
  
  "Guleken, 2020", "Sham", "Total time",                "T0",       210.34,  30.55,  0,
  "Guleken, 2020", "Sham", "Total time",                "T1",       202.22,  30.29,  28,
  
  "Guleken, 2020", "Sham", "Total errors",              "T0",       4,       7.1,    0,
  "Guleken, 2020", "Sham", "Total errors",              "T1",       2.6,     2.98,   28,
  
  "Guleken, 2020", "Sham", "Interference",              "T0",       64.09,   16.29,  0,
  "Guleken, 2020", "Sham", "Interference",              "T1",       61.08,   19.02,  28
)

### Guse (2013) ###

## Guse, 2013 Baseline
guse2013_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Guse, 2013", "Active", 13, 12, 37,         11.24,      36,         9.83,       "76.92%",   "75%",      "L-DLPFC", "10-20EEG",    "Uni-L",       "HF-RTMS", 175,         15,             "low",            "Deg-45"
)

# (Note the provided outcomes are reported with “T0” and “T1” timepoints; the “Time-points Days” row indicates T0 = 0 and T1 = 19.)

## Guse, 2013 Active Outcomes
guse2013_active <- tribble(
  ~study,      ~group, ~measure,                     ~timepoint, ~mean,   ~sd,   ~days,
  "Guse, 2013", "Active", "TMT-A",                   "T0",       24.6,    6.6,   0,
  "Guse, 2013", "Active", "TMT-A",                   "T1",       22.4,    6.7,   19,
  
  "Guse, 2013", "Active", "TMT-B",                   "T0",       55.5,    10.3,  0,
  "Guse, 2013", "Active", "TMT-B",                   "T1",       49.8,    16.2,  19,
  
  "Guse, 2013", "Active", "WCST Accuracy",           "T0",       0.8,     0.1,   0,
  "Guse, 2013", "Active", "WCST Accuracy",           "T1",       0.9,     0.1,   19,
  
  "Guse, 2013", "Active", "WCST RT",                 "T0",       2015,    581,   0,
  "Guse, 2013", "Active", "WCST RT",                 "T1",       1548,    434,   19,
  
  "Guse, 2013", "Active", "Sel. Attention Accuracy", "T0",       0.9,     0.03,  0,
  "Guse, 2013", "Active", "Sel. Attention Accuracy", "T1",       0.97,    0.1,   19,
  
  "Guse, 2013", "Active", "Sel. Attention RT",       "T0",       442,     47,    0,
  "Guse, 2013", "Active", "Sel. Attention RT",       "T1",       411,     56,    19,
  
  "Guse, 2013", "Active", "Div. Attention Accuracy", "T0",       0.9,     0.1,   0,
  "Guse, 2013", "Active", "Div. Attention Accuracy", "T1",       0.9,     0.1,   19,
  
  "Guse, 2013", "Active", "Div. Attention RT",       "T0",       665,     90,    0,
  "Guse, 2013", "Active", "Div. Attention RT",       "T1",       658,     65,    19,
  
  "Guse, 2013", "Active", "0-back Accuracy",         "T0",       86.8,    3,     0,
  "Guse, 2013", "Active", "0-back Accuracy",         "T1",       87.3,    2.8,   19,
  
  "Guse, 2013", "Active", "0-back RT",               "T0",       517,     77,    0,
  "Guse, 2013", "Active", "0-back RT",               "T1",       513,     105,   19,
  
  "Guse, 2013", "Active", "1-back Accuracy",         "T0",       81.5,    8.3,   0,
  "Guse, 2013", "Active", "1-back Accuracy",         "T1",       84.5,    5.2,   19,
  
  "Guse, 2013", "Active", "1-back RT",               "T0",       608,     132,   0,
  "Guse, 2013", "Active", "1-back RT",               "T1",       584,     130,   19,
  
  "Guse, 2013", "Active", "2-back Accuracy",         "T0",       77.6,    6.7,   0,
  "Guse, 2013", "Active", "2-back Accuracy",         "T1",       78.4,    6.9,   19,
  
  "Guse, 2013", "Active", "2-back RT",               "T0",       725,     176,   0,
  "Guse, 2013", "Active", "2-back RT",               "T1",       656,     143,   19
)

## Gus, 2013 Sham Outcomes
guse2013_sham <- tribble(
  ~study,      ~group, ~measure,                     ~timepoint, ~mean,   ~sd,   ~days,
  "Guse, 2013", "Sham", "TMT-A",                   "T0",       28.5,    10.2,  0,
  "Guse, 2013", "Sham", "TMT-A",                   "T1",       24.2,    6.7,   19,
  
  "Guse, 2013", "Sham", "TMT-B",                   "T0",       65,      23.2,  0,
  "Guse, 2013", "Sham", "TMT-B",                   "T1",       48.5,    9,     19,
  
  "Guse, 2013", "Sham", "WCST Accuracy",           "T0",       0.8,     0.1,   0,
  "Guse, 2013", "Sham", "WCST Accuracy",           "T1",       0.8,     0.1,   19,
  
  "Guse, 2013", "Sham", "WCST RT",                 "T0",       2387,    556,   0,
  "Guse, 2013", "Sham", "WCST RT",                 "T1",       1691,    258,   19,
  
  "Guse, 2013", "Sham", "Sel. Attention Accuracy", "T0",       0.9,     0.1,   0,
  "Guse, 2013", "Sham", "Sel. Attention Accuracy", "T1",       0.9,     0.1,   19,
  
  "Guse, 2013", "Sham", "Sel. Attention RT",       "T0",       415,     46,    0,
  "Guse, 2013", "Sham", "Sel. Attention RT",       "T1",       429,     71,    19,
  
  "Guse, 2013", "Sham", "Div. Attention Accuracy", "T0",       0.8,     0.2,   0,
  "Guse, 2013", "Sham", "Div. Attention Accuracy", "T1",       0.9,     0.1,   19,
  
  "Guse, 2013", "Sham", "Div. Attention RT",       "T0",       771,     123,   0,
  "Guse, 2013", "Sham", "Div. Attention RT",       "T1",       748,     71,    19,
  
  "Guse, 2013", "Sham", "0-back Accuracy",         "T0",       84.9,    6.2,   0,
  "Guse, 2013", "Sham", "0-back Accuracy",         "T1",       84.8,    7.5,   19,
  
  "Guse, 2013", "Sham", "0-back RT",               "T0",       595,     165,   0,
  "Guse, 2013", "Sham", "0-back RT",               "T1",       562,     138,   19,
  
  "Guse, 2013", "Sham", "1-back Accuracy",         "T0",       79.8,    9,     0,
  "Guse, 2013", "Sham", "1-back Accuracy",         "T1",       80.3,    9.6,   19,
  
  "Guse, 2013", "Sham", "1-back RT",               "T0",       680,     147,   0,
  "Guse, 2013", "Sham", "1-back RT",               "T1",       637,     137,   19,
  
  "Guse, 2013", "Sham", "2-back Accuracy",         "T0",       67.1,    10.1,  0,
  "Guse, 2013", "Sham", "2-back Accuracy",         "T1",       72,      9.2,   19,
  
  "Guse, 2013", "Sham", "2-back RT",               "T0",       760,     190,   0,
  "Guse, 2013", "Sham", "2-back RT",               "T1",       703,     174,   19
)

### Hasan (2016) ###

## Hasan, 2016 Baseline
hasan2016_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,    ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Hasan, 2016", "Active", 77, 79, 36.4,        10.6,       35.5,       9,         "85.71%",   "72.15%",   "L-DLPFC", "10-20EEG",    "Uni-L",       "HF-RTMS", 175,         15,             "low",            "Deg-45"
)

# Here we record each outcome separately for T0 and T1. (The “n” values differ by outcome.)

## Hasan, 2016 Active Outcomes
hasan2016_active <- tribble(
  ~study,       ~group,      ~measure,         ~timepoint, ~n,  ~mean, ~sd,   ~days,
  "Hasan, 2016", "Active", "DST z score",      "T0",       70,  0.14,  1.1,   NA,
  "Hasan, 2016", "Active", "DST z score",      "T1",       48,  0.36,  1.1,   NA,
  
  "Hasan, 2016", "Active", "DST Forward",      "T0",       70,  8.00,  2.2,   NA,
  "Hasan, 2016", "Active", "DST Forward",      "T1",       48,  8.40,  2.1,   NA,
  
  "Hasan, 2016", "Active", "DST Backward",     "T0",       70,  6.20,  2.2,   NA,
  "Hasan, 2016", "Active", "DST Backward",     "T1",       48,  6.60,  2.1,   NA,
  
  "Hasan, 2016", "Active", "TMT-A time (s)",   "T0",       73,  38.7,  2.1,   NA,
  "Hasan, 2016", "Active", "TMT-A time (s)",   "T1",       48,  33.0, 13.5,   NA,
  
  "Hasan, 2016", "Active", "TMT-B time (s)",   "T0",       71,  97.5, 60.9,   NA,
  "Hasan, 2016", "Active", "TMT-B time (s)",   "T1",       45,  81.2, 46.8,   NA,
  
  "Hasan, 2016", "Active", "VLMT z score",     "T0",       63, -0.04,  1.0,   NA,
  "Hasan, 2016", "Active", "VLMT z score",     "T1",       46, -0.06,  1.0,   NA,
  
  "Hasan, 2016", "Active", "WCST z score",     "T0",       51, -0.18,  1.1,   NA,
  "Hasan, 2016", "Active", "WCST z score",     "T1",       31,  0.13,  0.9,   NA,
  
  "Hasan, 2016", "Active", "WCST total correct score", "T0", 58, 33.3, 7.6, NA,
  "Hasan, 2016", "Active", "WCST total correct score", "T1", 37, 34.5, 6.8, NA,
  
  "Hasan, 2016", "Active", "WCST total errors", "T0",    66, 9.6, 7.6,  NA,
  "Hasan, 2016", "Active", "WCST total errors", "T1",    37, 7.5, 5.1,  NA,
  
  "Hasan, 2016", "Active", "RWT z score",      "T0",       66,  0.01, 1.1,   NA,
  "Hasan, 2016", "Active", "RWT z score",      "T1",       45, -0.03, 1.1,   NA
)

## Hasan, 2016 Sham Outcomes
hasan2016_sham <- tribble(
  ~study,       ~group,      ~measure,         ~timepoint, ~n,  ~mean, ~sd,   ~days,
  "Hasan, 2016", "Sham", "DST z score",      "T0",       75, -0.13,  0.9,   NA,
  "Hasan, 2016", "Sham", "DST z score",      "T1",       52, -0.04,  1.0,   NA,
  
  "Hasan, 2016", "Sham", "DST Forward",      "T0",       75,  7.30,  2.1,   NA,
  "Hasan, 2016", "Sham", "DST Forward",      "T1",       52,  7.80,  2.0,   NA,
  
  "Hasan, 2016", "Sham", "DST Backward",     "T0",       75,  5.90,  1.6,   NA,
  "Hasan, 2016", "Sham", "DST Backward",     "T1",       52,  5.80,  2.0,   NA,
  
  "Hasan, 2016", "Sham", "TMT-A time (s)",   "T0",       78,  38.3, 15.8,  NA,
  "Hasan, 2016", "Sham", "TMT-A time (s)",   "T1",       52,  37.3, 26.2,  NA,
  
  "Hasan, 2016", "Sham", "TMT-B time (s)",   "T0",       76,  87.8, 39.3,  NA,
  "Hasan, 2016", "Sham", "TMT-B time (s)",   "T1",       53,  91.2, 46.0,  NA,
  
  "Hasan, 2016", "Sham", "VLMT z score",     "T0",       70,  0.03,  1.0,   NA,
  "Hasan, 2016", "Sham", "VLMT z score",     "T1",       51, -0.23,  1.0,   NA,
  
  "Hasan, 2016", "Sham", "WCST z score",     "T0",       51,  0.18,  0.8,   NA,
  "Hasan, 2016", "Sham", "WCST z score",     "T1",       31,  0.26,  0.9,   NA,
  
  "Hasan, 2016", "Sham", "WCST total correct score", "T0", 58, 34.5, 7.8, NA,
  "Hasan, 2016", "Sham", "WCST total correct score", "T1", 37, 35.5, 6.5, NA,
  
  "Hasan, 2016", "Sham", "WCST total errors", "T0",    61, 8.30, 6.5, NA,
  "Hasan, 2016", "Sham", "WCST total errors", "T1",    37, 8.60, 7.4, NA,
  
  "Hasan, 2016", "Sham", "RWT z score",      "T0",       65, -0.01, 0.9,  NA,
  "Hasan, 2016", "Sham", "RWT z score",      "T1",       50,  0.01, 0.9,  NA
)

## Hasan, 2015 Baseline
hasan2015_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Hasan, 2015", "Active", 9, 8, 37.6, 10.5, 35.5, 12.7, "55.56%", "37.55%", "Vagus", "Uni-L", "TVNS", NA, NA, "low", "coil"
)

# For Hasan, 2015 the active outcomes are provided at three timepoints (T0, T1, and T2):

## Hasan, 2015 Active Outcomes
hasan2015_active <- tribble(
  ~study,       ~group,   ~measure,   ~timepoint, ~n,  ~mean,   ~sd,   ~days,
  "Hasan, 2015", "Active", "PANSS-P",  "T0",       9,   15.67,   6.48,  NA,
  "Hasan, 2015", "Active", "PANSS-P",  "T1",       8,   14.25,   5.60,  NA,
  "Hasan, 2015", "Active", "PANSS-P",  "T2",       7,   11.29,   5.94,  NA,
  
  "Hasan, 2015", "Active", "PANSS-N",  "T0",       9,   16.78,   4.41,  NA,
  "Hasan, 2015", "Active", "PANSS-N",  "T1",       8,   13.25,   4.50,  NA,
  "Hasan, 2015", "Active", "PANSS-N",  "T2",       7,   12.00,   4.24,  NA,
  
  "Hasan, 2015", "Active", "PANSS-G",  "T0",       9,   32.78,   7.92,  NA,
  "Hasan, 2015", "Active", "PANSS-G",  "T1",       8,   28.75,   7.38,  NA,
  "Hasan, 2015", "Active", "PANSS-G",  "T2",       7,   24.29,   7.61,  NA,
  
  "Hasan, 2015", "Active", "PANSS-T",  "T0",       9,   65.22,   19.25,  0,
  "Hasan, 2015", "Active", "PANSS-T",  "T1",       8,   56.25,   13.08, 84,
  "Hasan, 2015", "Active", "PANSS-T",  "T2",       7,   47.57,   13.85, 182,
  
  "Hasan, 2015", "Active", "SANS-G",   "T0",       9,    5.78,   2.54,  NA,
  "Hasan, 2015", "Active", "SANS-G",   "T1",       8,    4.38,   2.92,  NA,
  "Hasan, 2015", "Active", "SANS-G",   "T2",       7,    3.71,   2.93,  NA,
  
  "Hasan, 2015", "Active", "SANS-T",   "T0",       9,   21.78,   9.59,  NA,
  "Hasan, 2015", "Active", "SANS-T",   "T1",       8,   15.88,   10.25, NA,
  "Hasan, 2015", "Active", "SANS-T",   "T2",       7,   13.43,   12.73, NA
)

## Hasan, 2015 Sham Outcomes
hasan2015_sham <- tribble(
  ~study,       ~group,   ~measure,   ~timepoint, ~n,  ~mean,   ~sd,   ~days,
  "Hasan, 2015", "Sham", "PANSS-P",  "T0",       NA,  11.75,   3.11, NA,
  "Hasan, 2015", "Sham", "PANSS-P",  "T1",       NA,  10.86,   2.19, NA,
  "Hasan, 2015", "Sham", "PANSS-P",  "T2",       NA,  10.14,   1.68, NA,
  
  "Hasan, 2015", "Sham", "PANSS-N",  "T0",       NA,  15.00,   5.66, NA,
  "Hasan, 2015", "Sham", "PANSS-N",  "T1",       NA,  16.14,   7.78, NA,
  "Hasan, 2015", "Sham", "PANSS-N",  "T2",       NA,  14.43,   5.62, NA,
  
  "Hasan, 2015", "Sham", "PANSS-G",  "T0",       NA,  29.50,   6.80, NA,
  "Hasan, 2015", "Sham", "PANSS-G",  "T1",       NA,  26.43,   4.86, NA,
  "Hasan, 2015", "Sham", "PANSS-G",  "T2",       NA,  23.71,   4.50, NA,
  
  "Hasan, 2015", "Sham", "PANSS-T",  "T0",       NA,  56.25,   10.70, NA,
  "Hasan, 2015", "Sham", "PANSS-T",  "T1",       NA,  53.43,   12.74, NA,
  "Hasan, 2015", "Sham", "PANSS-T",  "T2",       NA,  48.29,   5.99, NA,
  
  "Hasan, 2015", "Sham", "SANS-G",   "T0",       NA,  6.38,    3.38, NA,
  "Hasan, 2015", "Sham", "SANS-G",   "T1",       NA,  4.71,    4.27, NA,
  "Hasan, 2015", "Sham", "SANS-G",   "T2",       NA,  4.00,    2.58, NA,
  
  "Hasan, 2015", "Sham", "SANS-T",   "T0",       NA,  25.38,   14.78, NA,
  "Hasan, 2015", "Sham", "SANS-T",   "T1",       NA,  19.57,   18.63, NA,
  "Hasan, 2015", "Sham", "SANS-T",   "T2",       NA,  15.00,   14.12, NA
)


# For Hoffman, 2005 the baseline characteristics and two separate blocks of active outcomes (with different sample sizes and timepoints) are provided. In this example, we define two tribbles for the active outcomes.

## Hoffman, 2005 Baseline
hoffman2005_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~lateralisation, ~targeting_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Hoffman, 2005", "Active", 27, 23, 35.16,       11.9,       35.5,       9.5,        "66.7%",    "65.2%",   "L-TPJ", "Uni-L",        "10-20EEG",        "LF-RTMS", 132,         9,              "low",            "deg-45"
)

## Hoffman, 2005 Active Outcomes (Block 1: n = 26)
hoffman2005_active_block1 <- tribble(
  ~study,         ~group, ~measure,                        ~timepoint, ~mean,    ~sd,   ~n,   ~days,
  "Hoffman, 2005", "Active", "TMT-A",                      "T1",       2.58,     12.6, 26,   NA,
  "Hoffman, 2005", "Active", "TMT-B",                      "T1",       19.54,    48.3, 26,   NA,
  "Hoffman, 2005", "Active", "CVLT 1–5 Total Score",         "T1",      -3.42,     7.08, 26,   0,
  "Hoffman, 2005", "Active", "Digit Recall (Nondistraction)","T1",      -0.12,     4.66, 26,   NA,
  "Hoffman, 2005", "Active", "Digit Recall (Distraction)",   "T1",       0.61,     3.93, 26,   NA,
  "Hoffman, 2005", "Active", "COWAT",                      "T1",       2.57,     7.07, 26,   NA,
  "Hoffman, 2005", "Active", "Animal Naming",              "T1",      -0.77,     4.41, 26,   NA,
  "Hoffman, 2005", "Active", "Digit Symbol",               "T1",       3.15,     7.76, 26,   NA
)

## Hoffman, 2005 Active Outcomes (Block 2: n = 21)
hoffman2005_active_block2 <- tribble(
  ~study,         ~group, ~measure,                        ~timepoint, ~mean,   ~sd,   ~n,   ~days,
  "Hoffman, 2005", "Active", "TMT-A",                      "T1",      -0.42,    8.23, 21,   NA,
  "Hoffman, 2005", "Active", "TMT-B",                      "T1",       25.30,   50.4, 21,   NA,
  "Hoffman, 2005", "Active", "CVLT 1–5 Total Score",         "T1",      -3.14,    8.21, 21,   NA,
  "Hoffman, 2005", "Active", "Digit Recall (Nondistraction)","T1",       1.19,    4.05, 21,   NA,
  "Hoffman, 2005", "Active", "Digit Recall (Distraction)",   "T1",      -0.09,    4.77, 21,   NA,
  "Hoffman, 2005", "Active", "COWAT",                      "T1",       2.53,    0.91, 21,   NA,
  "Hoffman, 2005", "Active", "Animal Naming",              "T1",       0.90,    4.17, 21,   NA,
  "Hoffman, 2005", "Active", "Digit Symbol",               "T1",       2.95,    7.72, 21,   NA
)

### Holi (2004) ###

## Holi, 2004 Baseline
holi2004_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~lateralisation, ~targeting_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Holi, 2004", "Active", 11, 11, 38.5,        10.2,       34.8,       9.8,        "81.8%",     "90.9%",    "L-DLPFC", "Uni-L",        "10-20EEG",        "HF-RTMS", 112.5,       10,            "low",            "deg-90"
)

## Holik, 2004 Active Outcomes
holi2004_active <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~days,
  "Holi, 2004", "Active", "PANSS-T", "T0",       105.2,   41.2,  NA,
  "Holi, 2004", "Active", "PANSS-T", "T1",       92.3,    34.3,  NA,
  
  "Holi, 2004", "Active", "PANSS-P", "T0",       23.6,    10.7,  NA,
  "Holi, 2004", "Active", "PANSS-P", "T1",       20.0,     9.1,  NA,
  
  "Holi, 2004", "Active", "PANSS-N", "T0",       28.9,    11.5,  0,
  "Holi, 2004", "Active", "PANSS-N", "T1",       27.5,    10.9,  NA,
  
  "Holi, 2004", "Active", "PANSS-G", "T0",       52.1,    23.4,  NA,
  "Holi, 2004", "Active", "PANSS-G", "T1",       48.0,    17.8,  NA
)

## Holik, 2004 Sham Outcomes
holi2004_sham <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~days,
  "Holi, 2004", "Sham", "PANSS-T", "T0",       110.3,   20.2,  NA,
  "Holi, 2004", "Sham", "PANSS-T", "T1",       85.6,    23.9,  NA,
  
  "Holi, 2004", "Sham", "PANSS-P", "T0",       27.0,    5.6,   NA,
  "Holi, 2004", "Sham", "PANSS-P", "T1",       19.1,    7.4,   NA,
  
  "Holi, 2004", "Sham", "PANSS-N", "T0",       31.0,    7.7,   NA,
  "Holi, 2004", "Sham", "PANSS-N", "T1",       25.2,    5.8,   NA,
  
  "Holi, 2004", "Sham", "PANSS-G", "T0",       52.3,    10.9,  NA,
  "Holi, 2004", "Sham", "PANSS-G", "T1",       44.6,    12.6,  NA
)

### Hou (2024) ###
hou2024_baseline <- tribble(
  ~study,       ~group,  ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd,
  ~Na_pct_male, ~Nc_pct_male, ~target,         ~lateralisation, ~targeting_method,
  ~technique,   ~total_time, ~total_sessions, ~session_frequency, ~sham,
  # Row 1
  "Hou, 2024", "Ndlpfc", 
   20, 20, 
   32.1, 7.44, 
   33.45, 7.71, 
   "55%", "45%", 
   "L-DLPFC_L-FC", "Uni-L", 
   "10-20EEG", "HD-TDCS", 
   200, 10, 
   "high", "40s",
  # Row 2
  "Hou, 2024", "Nppc", 
   20, NA, 
   34.1, 7.41, 
   NA, NA, 
   "30", NA, 
   "L-PPC_L-PC", "Uni-L", 
   "10-20EEG", NA, 
   NA, NA, 
   NA, NA
)


## Hou, 2024 Active Outcomes – DLPFC (Ndlpfc) Arm
# These outcomes (all at T1) are reported for the DLPFC (Ndlpfc) arm.

hou2024_active_DLPFC <- tribble(
  ~study,      ~group,     ~measure,                         ~timepoint, ~mean,    ~sd,   ~n,
  "Hou, 2024", "Ndlpfc",   "Spatial Span Test WM",           "T1",       -1.56,    7.28,  16,
  "Hou, 2024", "Ndlpfc",   "Delay-estimation task capacity", "T1",       -0.22,    0.78,  15,
  "Hou, 2024", "Ndlpfc",   "Digit sequencing task",          "T1",       1.44,     3.05,  16,
  "Hou, 2024", "Ndlpfc",   "Stroop RT",                      "T1",       -70.63,   209.49, 15,
  "Hou, 2024", "Ndlpfc",   "MCCB speed of processing",       "T1",       6.44,     5.91,  16,
  "Hou, 2024", "Ndlpfc",   "MCCB attention",                 "T1",       1.75,     7.69,  16,
  "Hou, 2024", "Ndlpfc",   "MCCB Verbal learning",           "T1",       1.44,     13.19, 16,
  "Hou, 2024", "Ndlpfc",   "MCCB visual learning",           "T1",       0.56,     9.13,  16,
  "Hou, 2024", "Ndlpfc",   "MCCB reasoning and problem solving", "T1",  7.19,     9.87,  16,
  "Hou, 2024", "Ndlpfc",   "MCCB composite",                 "T1",       4,        6.47,  16,
  "Hou, 2024", "Ndlpfc",   "PANSS-P",                        "T1",       0.19,     1.17,  16,
  "Hou, 2024", "Ndlpfc",   "PANSS-N",                        "T1",       -0.75,    1.77,  16,
  "Hou, 2024", "Ndlpfc",   "PANSS-T",                        "T1",       -2.25,    -2.25, 16,
  "Hou, 2024", "Ndlpfc",   "PANSS-G",                        "T1",       -2.25,    3.59,  16
)

### Hou (2024) ###
## Hou, 2024 Active Outcomes – PPC (Nppc) Arm
# These outcomes (all at T1) are reported for the PPC (Nppc) arm.
hou2024_active_PPC <- tribble(
  ~study,      ~group, ~measure,                         ~timepoint, ~mean,   ~sd,   ~n,
  "Hou, 2024", "Nppc", "Spatial Span Test WM",           "T1",       4.89,    6.44,  19,
  "Hou, 2024", "Nppc", "Delay-estimation task capacity", "T1",       0.27,    0.44,  19,
  "Hou, 2024", "Nppc", "Digit sequencing task",          "T1",       1.05,    2.04,  19,
  "Hou, 2024", "Nppc", "Stroop RT",                      "T1",       -98.03,  243.3,  19,
  "Hou, 2024", "Nppc", "MCCB speed of processing",       "T1",       6.11,    3.97,  19,
  "Hou, 2024", "Nppc", "MCCB attention",                 "T1",       2.37,    6.64,  19,
  "Hou, 2024", "Nppc", "MCCB Verbal learning",           "T1",       0.84,    9.82,  19,
  "Hou, 2024", "Nppc", "MCCB visual learning",           "T1",       2.37,    8.63,  19,
  "Hou, 2024", "Nppc", "MCCB reasoning and problem solving", "T1",  3.63,    6.98,  19,
  "Hou, 2024", "Nppc", "MCCB composite",                 "T1",       5.05,    5.03,  19,
  "Hou, 2024", "Nppc", "PANSS-P",                        "T1",       -0.53,   2.52,  17,
  "Hou, 2024", "Nppc", "PANSS-N",                        "T1",       0.42,    2.87,  17,
  "Hou, 2024", "Nppc", "PANSS-T",                        "T1",       -0.63,   5.28,  17,
  "Hou, 2024", "Nppc", "PANSS-G",                        "T1",       -0.63,   5.28,  17
)

## hou2024 Sham Outcomes
hou2024_sham <- tribble(
  ~study,      ~group,   ~measure,                         ~timepoint, ~mean,    ~sd,   ~n,
  "Hou, 2024", "Sham",  "Spatial Span Test WM",           "T1",       2.63,    5.28,  19,
  "Hou, 2024", "Sham",  "Delay-estimation task capacity", "T1",       -0.01,   1.1,   19,
  "Hou, 2024", "Sham",  "Digit sequencing task",          "T1",       1.42,    3.02,  19,
  "Hou, 2024", "Sham",  "Stroop RT",                      "T1",       -82.68,  247.88,19,
  "Hou, 2024", "Sham",  "MCCB speed of processing",       "T1",       4.11,    6.14,  19,
  "Hou, 2024", "Sham",  "MCCB attention",                 "T1",       0.79,    6.28,  19,
  "Hou, 2024", "Sham",  "MCCB Verbal learning",           "T1",       1.37,    11.77, 19,
  "Hou, 2024", "Sham",  "MCCB visual learning",           "T1",       1.84,    9.66,  19,
  "Hou, 2024", "Sham",  "MCCB reasoning and problem solving", "T1",  4.32,  7.43,  19,
  "Hou, 2024", "Sham",  "MCCB composite",                 "T1",       3.63,    5.96,  19,
  "Hou, 2024", "Sham",  "PANSS-P",                        "T1",       0.32,    1.89,  19,
  "Hou, 2024", "Sham",  "PANSS-N",                        "T1",       -0.89,   2.05,  19,
  "Hou, 2024", "Sham",  "PANSS-T",                        "T1",       -0.74,   4.6,   19,
  "Hou, 2024", "Sham",  "PANSS-G",                        "T1",       -0.74,   4.6,   19
)

hu2023_baseline <- tribble(
  ~study,     ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male,   ~Nc_pct_male, ~target,   ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Hu, 2023", "Active", 47, 42, 26.76,       8.24,       26.36,       7.77,       "53.19%",      "45.23%",     "R-ORBF", "10-10EEG",     "Uni-R",       "LF-RTMS", 350,         20,             "low",            "Deg-180"
)

hua2024_baseline <- tribble(
  ~study,     ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~lateralisation, ~targeting_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Hua, 2024", "Active", 45, 40, 26.9,        8.1,        26.6,        7.7,       "55.56%",     "45%",       "R-ORBF", "Uni-R",       "10-20EEG", "LF-TMS",   360,         20,             "low",            "coil"
)

hua2024_active <- tribble(
  ~study,     ~group,   ~measure,                        ~timepoint, ~mean,  ~sd,   ~n, ~days,
  "Hua, 2024", "Active", "PANSS-T",                       "T0",       82,     12.3, NA, NA,
  "Hua, 2024", "Active", "PANSS-T",                       "T1",       58.9,   9.4,  NA, NA,
  "Hua, 2024", "Active", "PANSS-P",                       "T0",       20.3,   4,   NA, NA,
  "Hua, 2024", "Active", "PANSS-P",                       "T1",       12.2,   3.3, NA, NA,
  "Hua, 2024", "Active", "PANSS-N",                       "T0",       21.9,   5.6, NA, NA,
  "Hua, 2024", "Active", "PANSS-N",                       "T1",       15.9,   4.1, NA, NA,
  "Hua, 2024", "Active", "PANSS-G",                       "T0",       39.7,   6.6, NA, NA,
  "Hua, 2024", "Active", "PANSS-G",                       "T1",       30.2,   4.6, NA, NA,
  
  # Additional cognitive outcomes:
  "Hua, 2024", "Active", "TMT-A Processing Speed",        "T0",       54.8,   39.8, NA, 0,
  "Hua, 2024", "Active", "BACS Symbol Coding Processing Speed", "T1", 45.7, 10.4, NA, 12,
  "Hua, 2024", "Active", "Category Fluency Processing Speed","T0",    20.1,   5,   NA, NA,
  "Hua, 2024", "Active", "CPT-IP Attention/Vigilance",    "T0",       1.9,    0.7, NA, NA,
  "Hua, 2024", "Active", "WMS-3 spatial span Working Memory","T0",   14.9,   3.9, NA, NA,
  "Hua, 2024", "Active", "HVLT-R Verbal Learning",        "T0",       22.6,   6.4, NA, NA,
  "Hua, 2024", "Active", "BVMT-R Visual Learning",        "T0",       19.9,   8.3, NA, NA,
  "Hua, 2024", "Active", "NAB Reasoning and Problem-Solving", "T0",   11.1,   6.7, NA, NA
)

huang2016_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,   ~lateralisation, ~targeting_method, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Huang, 2016", "Active", 19, 18, 40.58,       3.01,       39.39,       3.03,      "100%",     "100%",    "L-DLPFC", "Uni-L",        "cm",             "HF-RTMS", 140,         21,             "low",            "coil"
)

huang2016_active <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,  ~sd,   ~days,
  "Huang, 2016", "Active", "PANSS-P", "T0",       9.00,   1.63, NA,
  "Huang, 2016", "Active", "PANSS-P", "T1",       9.47,   1.68, NA,
  "Huang, 2016", "Active", "PANSS-N", "T0",       29.47,  3.01, NA,
  "Huang, 2016", "Active", "PANSS-N", "T1",       29.05,  2.51, NA,
  "Huang, 2016", "Active", "PANSS-G", "T0",       41.58,  4.21, NA,
  "Huang, 2016", "Active", "PANSS-G", "T1",       40.68,  2.73, NA,
  "Huang, 2016", "Active", "PANSS-T", "T0",       81.89,  13.48, NA,
  "Huang, 2016", "Active", "PANSS-T", "T1",       79.21,  5.34, NA,
  "Huang, 2016", "Active", "WSCT n total errors", "T0", 57.37,  9.06, NA,
  "Huang, 2016", "Active", "WSCT n total errors", "T1", 55.47,  8.05, NA
)

huang2016_sham <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,  ~sd,   ~days,
  "Huang, 2016", "Sham", "PANSS-P", "T0",       9.72,   2.24, NA,
  "Huang, 2016", "Sham", "PANSS-P", "T1",       9.67,   2.38, NA,
  "Huang, 2016", "Sham", "PANSS-N", "T0",       30.28,  6.29, NA,
  "Huang, 2016", "Sham", "PANSS-N", "T1",       30.00,  5.77, NA,
  "Huang, 2016", "Sham", "PANSS-G", "T0",       41.89,  6.69, NA,
  "Huang, 2016", "Sham", "PANSS-G", "T1",       41.61,  6.48, NA,
  "Huang, 2016", "Sham", "PANSS-T", "T0",       80.05,  8.02, NA,
  "Huang, 2016", "Sham", "PANSS-T", "T1",       81.28,  13.06, NA,
  "Huang, 2016", "Sham", "WSCT n total errors", "T0", 57.11, 4.96, NA,
  "Huang, 2016", "Sham", "WSCT n total errors", "T1", 56.50, 6.20, NA
)

### Jeon (2018) ###

## Jeon, 2018 Baseline
jeon2018_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,           ~target,             ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Jeon, 2018", "Active", 26, 28, 40,          9.41,       39.86,      12.42,      "50%",      "46.4%",   "L_DLPFC-R_DLPFC",   "10-20EEG",    "Uni-L",      "TDCS",     300,         10,             "low",            "Init-30"
)

## Jeon, 2018 Active Outcomes – Block 1 (n = 25)
jeon2018_active_block1 <- tribble(
  ~study,      ~group,   ~subgroup,  ~measure,                  ~timepoint, ~mean,   ~sd,   ~n,   ~days,
  "Jeon, 2018", "Active", "Block1",   "PANSS-P",                 "T0",       20.31,   6.57,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-P",                 "T1",       18.88,   5.52,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-N",                 "T0",       23.19,   6.96,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-N",                 "T1",       22.04,   6.78,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-G",                 "T0",       42.31,   10.66, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-G",                 "T1",       39.36,   11.05, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-T",                 "T0",       85.81,   21.10, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-T",                 "T1",       74.84,   27.34, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Speed of Processing", "T0",      17.65,   12.12, 25,   0,
  "Jeon, 2018", "Active", "Block1",   "MCCB Speed of Processing", "T1",      21.60,   11.09, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Attention",           "T0",      26,      14.06, 25,   0,
  "Jeon, 2018", "Active", "Block1",   "MCCB Attention",           "T1",      30.24,   14.08, 25,   12,
  "Jeon, 2018", "Active", "Block1",   "MCCB Working Memory",      "T0",      19.85,   14.77, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Working Memory",      "T1",      21.76,   10.86, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Verbal learning",     "T0",      27.50,   7.50,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Verbal learning",     "T1",      33.72,   13.80, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Visual Learning",     "T0",      28.92,   16.64, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Visual Learning",     "T1",      37.56,   17.66, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Problem Solving",     "T0",      35.73,   8.30,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Problem Solving",     "T1",      37.20,   8.72,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Social Cognition",    "T0",      24.77,   11.49, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Social Cognition",    "T1",      23.48,   11.06, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Composite Score",     "T0",      10.67,   15.06, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Composite Score",     "T1",      16.44,   14.44, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Perseverative Responses", "T0",   36.54,   12.34, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Perseverative Responses", "T1",   34.92,   14.15, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Categoris number",    "T0",      0.96,    1.75,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Categoris number",    "T1",      0.84,    1.65,  25,   NA
)

## Jeon, 2018 Active Outcomes – Block 2 (n = 27)
jeon2018_active_block2 <- tribble(
  ~study,      ~group,   ~subgroup, ~measure,                  ~timepoint, ~mean,   ~sd,   ~n,   ~days,
  "Jeon, 2018", "Active", "Block2",  "PANSS-P",                 "T0",       18.07,   5.79,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-P",                 "T1",       18.26,   5.28,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-N",                 "T0",       21.54,   6.05,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-N",                 "T1",       20.85,   5.16,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-G",                 "T0",       39.50,   8.59,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-G",                 "T1",       39.07,   10.34, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-T",                 "T0",       79.11,   16.59, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-T",                 "T1",       74.74,   22.9,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Speed of Processing", "T0",       23,      14.34, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Speed of Processing", "T1",       24.21,   15.18, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Attention",           "T0",       32.68,   14.24, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Attention",           "T1",       35.11,   13.04, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Working Memory",      "T0",       30.96,   14.52, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Working Memory",      "T1",       30.93,   16.09, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Verbal learning",     "T0",       30.36,   7.26,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Verbal learning",     "T1",       32.26,   8.84,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Visual Learning",     "T0",       35.18,   15.75, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Visual Learning",     "T1",       41.74,   17.35, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Problem Solving",     "T0",       38.04,   9.04,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Problem Solving",     "T1",       40.33,   10.18, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Social Cognition",    "T0",       25.75,   11.81, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Social Cognition",    "T1",       25.04,   10.65, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Composite Score",     "T0",       19.46,   13.86, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Composite Score",     "T1",       22.52,   16.79, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Perseverative Responses", "T0",    35.96,   14.26, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Perseverative Responses", "T1",    38.20,   17.05, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Categoris number",    "T0",       1.79,    2.36,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Categoris number",    "T1",       1.85,    2.28,  27,   NA
)

### Jin (2023) ###

## Jin, 2023 Baseline
jin2023_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,  ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Jin, 2023", "Active", 34, 32, 47.6,        9.46,       47.47,       10.99,      "52.94%",   "59.37%",  "DLPFC", "n/a",         "Uni-L",    "ITBS",    63,         20,             "low",            "coil"
)

## Jin, 2023 Active Outcomes
jin2023_active <- tribble(
  ~study,     ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Jin, 2023", "Active", "FERT",   "T0",       3.49,    0.38,  NA, NA,
  "Jin, 2023", "Active", "FERT",   "T1",       4.25,    0.36,  NA, NA,
  "Jin, 2023", "Active", "HT",     "T0",       12.5,    2.27,  NA, NA,
  "Jin, 2023", "Active", "HT",     "T1",       14.07,   1.89,  NA, NA,
  "Jin, 2023", "Active", "PANSS-T","T0",       66.03,   4.94,  NA, 0,
  "Jin, 2023", "Active", "PANSS-T","T1",       63.93,   4.56,  NA, 12,
  "Jin, 2023", "Active", "PANSS-P","T0",       12.77,   2.95,  NA, NA,
  "Jin, 2023", "Active", "PANSS-P","T1",       12.3,    3.38,  NA, NA,
  "Jin, 2023", "Active", "PANSS-N","T0",       23.57,   3.41,  NA, NA,
  "Jin, 2023", "Active", "PANSS-N","T1",       21.83,   3.27,  NA, NA,
  "Jin, 2023", "Active", "PANSS-G","T0",       29.7,    3.38,  NA, NA,
  "Jin, 2023", "Active", "PANSS-G","T1",       29.47,   2.99,  NA, NA
)

## Jin, 2023 Sham Outcomes
jin2023_sham <- tribble(
  ~study,     ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Jin, 2023", "Sham", "FERT",   "T0",       3.66,    0.37,  NA, NA,
  "Jin, 2023", "Sham", "FERT",   "T1",       3.98,    0.33,  NA, NA,
  "Jin, 2023", "Sham", "HT",     "T0",       12.63,   2.5,   NA, NA,
  "Jin, 2023", "Sham", "HT",     "T1",       13.07,   1.91,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-T","T0",       65.97,   5.25,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-T","T1",       65.57,   4.91,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-P","T0",       12.70,   2.44,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-P","T1",       12.57,   2.11,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-N","T0",       23.47,   2.95,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-N","T1",       23.33,   2.6,   NA, NA,
  "Jin, 2023", "Sham", "PANSS-G","T0",       29.80,   3.62,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-G","T1",       29.67,   3.88,  NA, NA
)

### Kang (2024) ###

## Kang, 2024 Baseline
kang2024_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~target_method, ~lateralisation, ~technique,    ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kang, 2024", "Active", 20, 20, 28.75,       9.49,       29.88,       7.64,      "35%",      "25%",      "L-M1", "Uni-L",      "cm",         "CTBS",     116.67,      50,             "high",           "deg-90"
)

## Kang, 2024 Active Outcomes
kang2024_active <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kang, 2024", "Active", "PANSS-T", "T0",       69.2,    13.84, NA, NA,
  "Kang, 2024", "Active", "PANSS-T", "T1",       60.58,   14.89, NA, NA,
  
  "Kang, 2024", "Active", "PANSS-P", "T0",       14.95,   6.02,  NA, NA,
  "Kang, 2024", "Active", "PANSS-P", "T1",       10.55,   5.89,  NA, NA,
  
  "Kang, 2024", "Active", "PANSS-N", "T0",       22.1,    5.14,  NA, 0,
  "Kang, 2024", "Active", "PANSS-N", "T1",       20.0,    7.06,  NA, NA,
  
  "Kang, 2024", "Active", "PANSS-G", "T0",       32.15,   5.66,  NA, NA,
  "Kang, 2024", "Active", "PANSS-G", "T1",       27.0,    8.68,  NA, 10,
  
  "Kang, 2024", "Active", "AHRS",    "T0",       5.25,    11.35, NA, NA,
  "Kang, 2024", "Active", "AHRS",    "T1",       4.16,    9.99,  NA, NA
)

## Kang, 2024 Sham Outcomes
kang2024_sham <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kang, 2024", "Sham", "PANSS-T", "T0",       68.23,   17.17, NA, NA,
  "Kang, 2024", "Sham", "PANSS-T", "T1",       62.58,   16.66, NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-P", "T0",       14.65,   5.44,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-P", "T1",       13.15,   4.21,  NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-N", "T0",       22.08,   7.17,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-N", "T1",       20.04,   6.81,  NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-G", "T0",       31.5,    6.56,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-G", "T1",       29.38,   7.49,  NA, NA,
  
  "Kang, 2024", "Sham", "AHRS",    "T0",       10.52,   14.86, NA, NA,
  "Kang, 2024", "Sham", "AHRS",    "T1",       9.5,     13.87, NA, NA
)

### Kantrowitz (2019) ###

## Kantrowitz, 2019 Baseline
kantrowitz2019_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,            ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kantrowitz, 2019", "Active", 47, 42, 38.2,       9.9,        40.1,       8.6,        "68%",      "83%",     "L_DLPFC-L_TPOJ", "10-20EEG",     "Uni-L",    "TDCS",    200,         10,             "High",           "Init-40"
)

## Kantrowitz, 2019 Active Outcomes
kantrowitz2019_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kantrowitz, 2019", "Active", "AHRS", "T0",       24.8,   5.7,  NA,  0,
  "Kantrowitz, 2019", "Active", "AHRS", "T1",       19.5,   10.6, NA,  14
)

## Kantrowitz, 2019 Sham Outcomes
kantrowitz2019_sham <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kantrowitz, 2019", "Sham", "AHRS", "T0",       25.2,   5.7,  NA,  NA,
  "Kantrowitz, 2019", "Sham", "AHRS", "T1",       20.7,   10.1, NA,  NA
)

### Kimura (2016) ###

## Kimura, 2016 Baseline
kimura2016_baseline <- tribble(
  ~study,       ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kimura, 2016", "Active", 16, 14, 44.6,         10.5,       40.7,         9,         "43.75%",    "50%",       "TPJ", "10-20EEG", "Uni-L", "HF-RTMS", 48.68,      4,             "High",           "coil"
)

## Kimura, 2016 Active Outcomes for AHRS:
kimura2016_active_AHRS <- tribble(
  ~study,       ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~n,
  "Kimura, 2016", "Active", "AHRS", "T0",       22.9,  6.8,   NA,
  "Kimura, 2016", "Active", "AHRS", "T1",       18.4,  9.7,   NA
)

## Kimura, 2016 Active Outcomes for SAPS:
kimura2016_active_SAPS <- tribble(
  ~study,       ~group, ~measure, ~timepoint, ~mean, ~sd, ~n,
  "Kimura, 2016", "Active", "SAPS", "T0",       0,     NA, NA,
  "Kimura, 2016", "Active", "SAPS", "T1",       3,     NA, NA
)

## Kimura, 2016 Sham Outcomes for AHRS:
kimura2016_sham <- tribble(
  ~study,       ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~n,
  "Kimura, 2016", "Sham", "AHRS", "T0",       24.2,  7.4,   NA,
  "Kimura, 2016", "Sham", "AHRS", "T1",       21.8,  10.2,  NA
)

### Jeon (2018) ###

## Jeon, 2018 Baseline
jeon2018_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,           ~target,             ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Jeon, 2018", "Active", 26, 28, 40,          9.41,       39.86,      12.42,      "50%",      "46.4%",   "L_DLPFC-R_DLPFC",   "10-20EEG",    "Uni-L",      "TDCS",     300,         10,             "low",            "Init-30"
)

## Jeon, 2018 Active Outcomes – Block 1 (n = 25)
jeon2018_active_block1 <- tribble(
  ~study,      ~group, ~subgroup,  ~measure,                  ~timepoint, ~mean,   ~sd,   ~n,   ~days,
  "Jeon, 2018", "Active", "Block1",   "PANSS-P",                 "T0",       20.31,   6.57,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-P",                 "T1",       18.88,   5.52,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-N",                 "T0",       23.19,   6.96,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-N",                 "T1",       22.04,   6.78,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-G",                 "T0",       42.31,   10.66, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-G",                 "T1",       39.36,   11.05, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-T",                 "T0",       85.81,   21.10, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "PANSS-T",                 "T1",       74.84,   27.34, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Speed of Processing", "T0",      17.65,   12.12, 25,   0,
  "Jeon, 2018", "Active", "Block1",   "MCCB Speed of Processing", "T1",      21.60,   11.09, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Attention",           "T0",      26,      14.06, 25,   0,
  "Jeon, 2018", "Active", "Block1",   "MCCB Attention",           "T1",      30.24,   14.08, 25,   12,
  "Jeon, 2018", "Active", "Block1",   "MCCB Working Memory",      "T0",      19.85,   14.77, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Working Memory",      "T1",      21.76,   10.86, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Verbal learning",     "T0",      27.50,   7.50,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Verbal learning",     "T1",      33.72,   13.80, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Visual Learning",     "T0",      28.92,   16.64, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Visual Learning",     "T1",      37.56,   17.66, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Problem Solving",     "T0",      35.73,   8.30,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Problem Solving",     "T1",      37.20,   8.72,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Social Cognition",    "T0",      24.77,   11.49, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Social Cognition",    "T1",      23.48,   11.06, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Composite Score",     "T0",      10.67,   15.06, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "MCCB Composite Score",     "T1",      16.44,   14.44, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Perseverative Responses", "T0",   36.54,   12.34, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Perseverative Responses", "T1",   34.92,   14.15, 25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Categoris number",    "T0",      0.96,    1.75,  25,   NA,
  "Jeon, 2018", "Active", "Block1",   "WCST Categoris number",    "T1",      0.84,    1.65,  25,   NA
)

## Jeon, 2018 Active Outcomes – Block 2 (n = 27)
jeon2018_active_block2 <- tribble(
  ~study,      ~group, ~subgroup, ~measure,                  ~timepoint, ~mean,   ~sd,   ~n,   ~days,
  "Jeon, 2018", "Active", "Block2",  "PANSS-P",                 "T0",       18.07,   5.79,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-P",                 "T1",       18.26,   5.28,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-N",                 "T0",       21.54,   6.05,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-N",                 "T1",       20.85,   5.16,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-G",                 "T0",       39.50,   8.59,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-G",                 "T1",       39.07,   10.34, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-T",                 "T0",       79.11,   16.59, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "PANSS-T",                 "T1",       74.74,   22.9,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Speed of Processing", "T0",       23,      14.34, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Speed of Processing", "T1",       24.21,   15.18, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Attention",           "T0",       32.68,   14.24, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Attention",           "T1",       35.11,   13.04, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Working Memory",      "T0",       30.96,   14.52, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Working Memory",      "T1",       30.93,   16.09, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Verbal learning",     "T0",       30.36,   7.26,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Verbal learning",     "T1",       32.26,   8.84,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Visual Learning",     "T0",       35.18,   15.75, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Visual Learning",     "T1",       41.74,   17.35, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Problem Solving",     "T0",       38.04,   9.04,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Problem Solving",     "T1",       40.33,   10.18, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Social Cognition",    "T0",       25.75,   11.81, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Social Cognition",    "T1",       25.04,   10.65, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Composite Score",     "T0",       19.46,   13.86, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "MCCB Composite Score",     "T1",       22.52,   16.79, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Perseverative Responses", "T0",    35.96,   14.26, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Perseverative Responses", "T1",    38.20,   17.05, 27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Categoris number",    "T0",       1.79,    2.36,  27,   NA,
  "Jeon, 2018", "Active", "Block2",  "WCST Categoris number",    "T1",       1.85,    2.28,  27,   NA
)

### Jin (2023) ###

## Jin, 2023 Baseline
jin2023_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,  ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Jin, 2023", "Active", 34, 32, 47.6,        9.46,       47.47,       10.99,      "52.94%",   "59.37%",  "DLPFC", "n/a",         "Uni-L",    "ITBS",    63,         20,             "low",            "coil"
)

## Jin, 2023 Active Outcomes
jin2023_active <- tribble(
  ~study,     ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Jin, 2023", "Active", "FERT",   "T0",       3.49,    0.38,  NA, NA,
  "Jin, 2023", "Active", "FERT",   "T1",       4.25,    0.36,  NA, NA,
  "Jin, 2023", "Active", "HT",     "T0",       12.5,    2.27,  NA, NA,
  "Jin, 2023", "Active", "HT",     "T1",       14.07,   1.89,  NA, NA,
  "Jin, 2023", "Active", "PANSS-T","T0",       66.03,   4.94,  NA, 0,
  "Jin, 2023", "Active", "PANSS-T","T1",       63.93,   4.56,  NA, 12,
  "Jin, 2023", "Active", "PANSS-P","T0",       12.77,   2.95,  NA, NA,
  "Jin, 2023", "Active", "PANSS-P","T1",       12.3,    3.38,  NA, NA,
  "Jin, 2023", "Active", "PANSS-N","T0",       23.57,   3.41,  NA, NA,
  "Jin, 2023", "Active", "PANSS-N","T1",       21.83,   3.27,  NA, NA,
  "Jin, 2023", "Active", "PANSS-G","T0",       29.7,    3.38,  NA, NA,
  "Jin, 2023", "Active", "PANSS-G","T1",       29.47,   2.99,  NA, NA
)

## Jin, 2023 Sham Outcomes
jin2023_sham <- tribble(
  ~study,     ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Jin, 2023", "Sham", "FERT",   "T0",       3.66,    0.37,  NA, NA,
  "Jin, 2023", "Sham", "FERT",   "T1",       3.98,    0.33,  NA, NA,
  "Jin, 2023", "Sham", "HT",     "T0",       12.63,   2.50,  NA, NA,
  "Jin, 2023", "Sham", "HT",     "T1",       13.07,   1.91,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-T","T0",       65.97,   5.25,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-T","T1",       65.57,   4.91,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-P","T0",       12.70,   2.44,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-P","T1",       12.57,   2.11,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-N","T0",       23.47,   2.95,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-N","T1",       23.33,   2.60,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-G","T0",       29.80,   3.62,  NA, NA,
  "Jin, 2023", "Sham", "PANSS-G","T1",       29.67,   3.88,  NA, NA
)

### Kang (2024) ###

## Kang, 2024 Baseline
kang2024_baseline <- tribble(
  ~study,      ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target, ~target_method, ~lateralisation, ~technique,    ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kang, 2024", "Active", 20, 20, 28.75,       9.49,       29.88,       7.64,      "35%",      "25%",      "L-M1", "Uni-L",      "cm",         "CTBS",     116.67,      50,             "high",           "deg-90"
)

## Kang, 2024 Active Outcomes
kang2024_active <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kang, 2024", "Active", "PANSS-T", "T0",       69.2,    13.84, NA, NA,
  "Kang, 2024", "Active", "PANSS-T", "T1",       60.58,   14.89, NA, NA,
  
  "Kang, 2024", "Active", "PANSS-P", "T0",       14.95,   6.02,  NA, NA,
  "Kang, 2024", "Active", "PANSS-P", "T1",       10.55,   5.89,  NA, NA,
  
  "Kang, 2024", "Active", "PANSS-N", "T0",       22.1,    5.14,  NA, 0,
  "Kang, 2024", "Active", "PANSS-N", "T1",       20.0,    7.06,  NA, NA,
  
  "Kang, 2024", "Active", "PANSS-G", "T0",       32.15,   5.66,  NA, NA,
  "Kang, 2024", "Active", "PANSS-G", "T1",       27.0,    8.68,  NA, 10,
  
  "Kang, 2024", "Active", "AHRS",    "T0",       5.25,    11.35, NA, NA,
  "Kang, 2024", "Active", "AHRS",    "T1",       4.16,    9.99,  NA, NA
)

# Kang, 2024 Sham Outcomes
kang2024_sham <- tribble(
  ~study,      ~group, ~measure,   ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kang, 2024", "Sham", "PANSS-T", "T0",       68.23,   17.17, NA, NA,
  "Kang, 2024", "Sham", "PANSS-T", "T1",       62.58,   16.66, NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-P", "T0",       14.65,   5.44,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-P", "T1",       13.15,   4.21,  NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-N", "T0",       22.08,   7.17,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-N", "T1",       20.04,   6.81,  NA, NA,
  
  "Kang, 2024", "Sham", "PANSS-G", "T0",       31.5,    6.56,  NA, NA,
  "Kang, 2024", "Sham", "PANSS-G", "T1",       29.38,   7.49,  NA, NA,
  
  "Kang, 2024", "Sham", "AHRS",    "T0",       10.52,   14.86, NA, NA,
  "Kang, 2024", "Sham", "AHRS",    "T1",       9.5,     13.87, NA, NA
)

### Kantrowitz (2019) ###

## Kantrowitz, 2019 Baseline
kantrowitz2019_baseline <- tribble(
  ~study,         ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male, ~target,            ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kantrowitz, 2019", "Active", 47, 42, 38.2,       9.9,        40.1,       8.6,        "68%",      "83%",     "L_DLPFC-L_TPOJ", "10-20EEG",     "Uni-L",    "TDCS",    200,         10,             "High",           "Init-40"
)

## Kantrowitz, 2019 Active Outcomes
kantrowitz2019_active <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kantrowitz, 2019", "Active", "AHRS", "T0",       24.8,   5.7,  NA,  0,
  "Kantrowitz, 2019", "Active", "AHRS", "T1",       19.5,   10.6, NA,  14
)

## Kantrowitz, 2019 Sham Outcomes
kantrowitz2019_sham <- tribble(
  ~study,         ~group, ~measure, ~timepoint, ~mean,   ~sd,   ~n, ~days,
  "Kantrowitz, 2019", "Sham", "AHRS", "T0",       25.2,   5.7,  NA,  NA,
  "Kantrowitz, 2019", "Sham", "AHRS", "T1",       20.7,   10.1, NA,  NA
)

### Kos (2024) ###

## Kos, 2024 Baseline
kos2024_baseline <- tribble(
  ~study,    ~group, ~Na, ~Nc, ~Na_age_mean, ~Na_age_sd, ~Nc_age_mean, ~Nc_age_sd, ~Na_pct_male, ~Nc_pct_male,                ~target,                ~target_method, ~lateralisation, ~technique, ~total_time, ~total_sessions, ~session_frequency, ~sham,
  "Kos, 2024", "Active", 17, 17, NA,          NA,         NA,          NA,         "94.1%",     "76.5%",       "R-DLPFC_L-Orbit",   "10-20EEG",    "Uni-R",       "TDCS",     200,         10,             "low",            "40s"
)

## Kos, 2024 Active Outcomes SANS and AES from T0 to T1, with n=15 at T1
kos2024_active <- tribble(
  ~study,    ~group,  ~measure, ~timepoint, ~mean,  ~sd,   ~n,
  "Kos, 2024", "Active", "SANS", "T0",       49.1,   13,    NA,
  "Kos, 2024", "Active", "SANS", "T1",       43.3,   15.1,  15,
  "Kos, 2024", "Active", "AES",  "T0",       44.1,   6.5,   NA,
  "Kos, 2024", "Active", "AES",  "T1",       41.2,   7.2,   15
)

## Kos, 2024 Sham Outcomes SANS and AES from T0 to T1, with n=17 at T1
kos2024_sham <- tribble(
  ~study,    ~group, ~measure, ~timepoint, ~mean,  ~sd,   ~n,
  "Kos, 2024", "Sham", "SANS", "T0",       59.4,   15.1,  NA,
  "Kos, 2024", "Sham", "SANS", "T1",       57.4,   18,    17,
  "Kos, 2024", "Sham", "AES",  "T0",       49.1,   7.4,   NA,
  "Kos, 2024", "Sham", "AES",  "T1",       46.5,   8,     17
)