digital <- tibble::tibble(
study = c("Taipei Diabetes App", "Taipei Diabetes App",
"Taichung Coaching Trial", "Taichung Coaching Trial",
"Kaohsiung CGM Study", "Kaohsiung CGM Study",
"Tainan Primary Care", "Tainan Primary Care",
"Hualien Rural Program", "Hualien Rural Program",
"Chiayi Pharmacist Trial", "Chiayi Pharmacist Trial",
"Keelung Nurse Support", "Keelung Nurse Support",
"Pingtung Community Trial", "Pingtung Community Trial",
"Miaoli Brief Messaging",
"Yilan Integrated Platform", "Yilan Integrated Platform"),
outcome = c("HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c", "Weight",
"HbA1c",
"HbA1c", "Weight"),
yi = c(-0.42, -1.8,
-0.35, -1.7,
-0.72, -2.7,
-0.31, -1.3,
-0.12, -1.4,
-0.47, -0.4,
-0.28, -1.8,
-0.05, -0.2,
-0.25,
-0.66, -2.5),
se = c(0.13, 0.55,
0.14, 0.50,
0.16, 0.70,
0.12, 0.45,
0.15, 0.60,
0.14, 0.52,
0.13, 0.48,
0.17, 0.62,
0.16,
0.15, 0.58),
risk_of_bias = c("Some concerns", "Some concerns",
"Low", "Low",
"Low", "Low",
"Some concerns", "Some concerns",
"High", "High",
"Some concerns", "Some concerns",
"Some concerns", "Some concerns",
"High", "High",
"High",
"Low", "Low")
) |>
mutate(
outcome = factor(outcome, levels = c("HbA1c", "Weight")),
vi = se^2,
ci_low = yi - 1.96 * se,
ci_high = yi + 1.96 * se
)
kable(
digital |>
transmute(研究 = study, 結局 = outcome, `MD` = yi, `SE` = se,
`95% CI` = sprintf("%.2f to %.2f", ci_low, ci_high),
`偏差風險` = risk_of_bias),
digits = 2
)