Data extracted was tabulated in a google sheet. Then exported as csv file and imported in R (R Core Team (2017). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.)
Data cleaning and organization was done with package tidyverse (Hadley Wickham (2017). tidyverse: Easily Install and Load the ‘Tidyverse’. R package version 1.2.1. https://CRAN.R-project.org/package=tidyverse).
The package meta (Guido Schwarzer (2007), meta: An R package for meta-analysis, R News, 7(3), 40-45.) was used for the meta-analysis. A funnel plot was used to detect publication bias. The heterogenicity between studies was checked with I2 and visualized with a Baujat plot (Baujat B, Mahé C, Pignon JP, Hill C (2002), A graphical method for exploring heterogeneity in meta-analyses: Application to a meta-analysis of 65 trials. Statistics in Medicine, 30, 2641–2652.). We grouped the studies with same intervention and control and considered any adverse outcome. A random effect meta-analysis using odds-ratio as outcome was performed with a Mantel-Haenzel method. A forest plot was used to visualize the overall effect of the interventions, with a 95% confidence interval.
df <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vRSKuBlcQTVJK2fZyZ4Nvf4SwSqVrxcfAGhNhl6dWHU9W39oppE4Pl4lcPy-0CRGRTqQQ0IHwFgfrY8/pub?gid=0&single=true&output=csv")
glimpse(df)
Clean dataset from empty rows, strange symbols, etc
df <- df %>% filter(str_detect(df$Comparison, "vs"),
trimws(EvA) != "",
!str_detect(EvA, "\\?"),
!str_detect(EvA, "%") )
df$firstAuthor <- str_trim(df$firstAuthor, "right")
Select only relevant columns
df <- df %>% select(Comparison:Outcome) %>%
select(-quality)
create a new column id
df <- mutate(df, id = paste(firstAuthor, ", ", year, paper))
Converting factors to numeric variables
glimpse(df)
df$EvA <- as.integer(df$EvA)
df$TotalA <- as.integer(df$TotalA)
df$EvB <- as.integer(df$EvB)
df$TotalB <- as.integer(df$TotalB)
df <- df %>%
mutate(groups = paste(Comparison, Outcome))
summary(df)
Create groups for comparisons
Any intervention (Sealant, Refinishing or Repair) vs grouped comparison and grouped outcome
df <- mutate(df, groups = paste( intervention_b, Outcome))
table(df$groups)
data_meta <- df %>%
filter(groups == "No-treatment MA")
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 6
OR 95%-CI z p-value
Random effects model 1.0181 [0.3054; 3.3946] 0.03 0.9767
Quantifying heterogeneity:
tau^2 = 1.5285; H = 1.95 [1.29; 2.95]; I^2 = 73.8% [40.2%; 88.5%]
Test of heterogeneity:
Q d.f. p-value
19.10 5 0.0018
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
meta1
OR 95%-CI %W(random)
Gordan 2009 Sealant 0.6400 [0.0880; 4.6554] 14.8
Gordan 2009 Refinishing 2.8000 [0.5321; 14.7350] 16.8
Moncada 2015 Sealant 0.0345 [0.0017; 0.6894] 9.8
Estay 2017 Refinishing 0.2864 [0.0836; 0.9813] 19.6
Fernandez 2015 Sealant 12.0000 [2.1471; 67.0674] 16.4
Estay 2017 Refinishing 1.4082 [0.6730; 2.9464] 22.6
Number of studies combined: k = 6
OR 95%-CI z p-value
Random effects model 1.0181 [0.3054; 3.3946] 0.03 0.9767
Quantifying heterogeneity:
tau^2 = 1.5285; H = 1.95 [1.29; 2.95]; I^2 = 73.8% [40.2%; 88.5%]
Test of heterogeneity:
Q d.f. p-value
19.10 5 0.0018
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or ref.",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "1.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or ref.",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
data_meta <- df %>%
filter(groups == "No-treatment SC")
data_meta
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE,
cex.studlab = .55)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 6
OR 95%-CI z p-value
Random effects model 1.286 [0.4991; 3.3137] 0.52 0.6024
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 1.26]; I^2 = 0.0% [0.0%; 36.7%]
Test of heterogeneity:
Q d.f. p-value
2.00 5 0.8487
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
meta1
OR 95%-CI %W(random)
Gordan 2009 Sealant 0.5556 [0.0200; 15.4620] 8.1
Gordan 2009 Refinishing 1.2000 [0.0663; 21.7233] 10.7
Moncada 2015 Sealant 0.3103 [0.0116; 8.2917] 8.3
Estay 2017 Refinishing 5.0571 [0.1952; 131.0509] 8.5
Fernandez 2015 Sealant 0.8889 [0.1119; 7.0614] 20.9
Estay 2017 Refinishing 1.8333 [0.4372; 7.6869] 43.6
Number of studies combined: k = 6
OR 95%-CI z p-value
Random effects model 1.286 [0.4991; 3.3137] 0.52 0.6024
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 1.26]; I^2 = 0.0% [0.0%; 36.7%]
Test of heterogeneity:
Q d.f. p-value
2.00 5 0.8487
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or refinishing",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "2.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or refinishing",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
data_meta <- df %>%
filter(groups == "No-treatment TS")
data_meta
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE,
cex.studlab = .55)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 3
OR 95%-CI z p-value
Random effects model 3.1616 [0.6856; 14.5791] 1.48 0.1400
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 2.27]; I^2 = 0.0% [0.0%; 80.6%]
Test of heterogeneity:
Q d.f. p-value
1.07 2 0.5850
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
meta1
OR 95%-CI %W(random)
Moncada 2015 Sealant 1.0000 [0.0563; 17.7510] 28.2
Estay 2017 Refinishing 8.9394 [0.4045; 197.5585] 24.4
Estay 2017 Refinishing 3.6774 [0.3992; 33.8804] 47.4
Number of studies combined: k = 3
OR 95%-CI z p-value
Random effects model 3.1616 [0.6856; 14.5791] 1.48 0.1400
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 2.27]; I^2 = 0.0% [0.0%; 80.6%]
Test of heterogeneity:
Q d.f. p-value
1.07 2 0.5850
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or refinish",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "3.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or refinish",
col.label.left = "darkgreen",
# RIGHT
label.right = "No treatment",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
data_meta <- df %>%
filter(groups == "Replacement MA")
data_meta
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE,
cex.studlab = .55)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 4
OR 95%-CI z p-value
Random effects model 0.7996 [0.2774; 2.3052] -0.41 0.6789
Quantifying heterogeneity:
tau^2 = 0.5096; H = 1.34 [1.00; 2.31]; I^2 = 44.1% [0.0%; 81.3%]
Test of heterogeneity:
Q d.f. p-value
5.37 3 0.1467
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
meta1
OR 95%-CI %W(random)
Gordan 2011 Repair 0.1319 [0.0141; 1.2354] 16.1
Moncada 2015 Sealant NA 0.0
Estay 2017 Repair 0.6222 [0.1554; 2.4920] 28.9
Estay 2017 Repair 2.7045 [0.6384; 11.4576] 27.7
Gordan 2009 Repair 0.8750 [0.2020; 3.7907] 27.3
Number of studies combined: k = 4
OR 95%-CI z p-value
Random effects model 0.7996 [0.2774; 2.3052] -0.41 0.6789
Quantifying heterogeneity:
tau^2 = 0.5096; H = 1.34 [1.00; 2.31]; I^2 = 44.1% [0.0%; 81.3%]
Test of heterogeneity:
Q d.f. p-value
5.37 3 0.1467
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "4.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
data_meta <- df %>%
filter(groups == "Replacement SC")
data_meta
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE,
cex.studlab = .55)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 4
OR 95%-CI z p-value
Random effects model 0.9363 [0.1065; 8.2309] -0.06 0.9526
Quantifying heterogeneity:
tau^2 = 2.9848; H = 1.61 [1.00; 2.78]; I^2 = 61.4% [0.0%; 87.1%]
Test of heterogeneity:
Q d.f. p-value
7.77 3 0.0511
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
meta1
OR 95%-CI %W(random)
Gordan 2011 Repair 0.1319 [0.0141; 1.2354] 28.7
Moncada 2015 Sealant NA 0.0
Estay 2017 Repair 5.7273 [0.5312; 61.7487] 27.6
Estay 2017 Repair 6.5152 [0.2925; 145.1132] 22.4
Gordan 2009 Repair 0.1634 [0.0062; 4.3051] 21.3
Number of studies combined: k = 4
OR 95%-CI z p-value
Random effects model 0.9363 [0.1065; 8.2309] -0.06 0.9526
Quantifying heterogeneity:
tau^2 = 2.9848; H = 1.61 [1.00; 2.78]; I^2 = 61.4% [0.0%; 87.1%]
Test of heterogeneity:
Q d.f. p-value
7.77 3 0.0511
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
- Continuity correction of 0.5 in studies with zero cell frequencies
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "5.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
data_meta <- df %>%
filter(groups == "Replacement TS")
data_meta
meta1 <- metabin(EvA, TotalA,
EvB, TotalB,
data = data_meta,
sm = "OR", method.tau = "DL",
comb.fixed = FALSE,
studlab = paste(firstAuthor, year, intervention_a))
funnel.meta(meta1,
studlab = TRUE,
cex.studlab = .55)
baujat.meta(meta1,
yscale = 10, xmin = 3, ymin = 10,
cex.studlab = .50)
summary(meta1)
Number of studies combined: k = 3
OR 95%-CI z p-value
Random effects model 0.369 [0.0875; 1.5561] -1.36 0.1745
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 2.73]; I^2 = 0.0% [0.0%; 86.5%]
Test of heterogeneity:
Q d.f. p-value
1.55 2 0.4617
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
meta1
OR 95%-CI %W(random)
Gordan 2011 Repair 0.1319 [0.0141; 1.2354] 41.4
Moncada 2015 Sealant 1.1538 [0.0654; 20.3419] 25.2
Estay 2017 Repair NA 0.0
Estay 2017 Repair 0.5588 [0.0464; 6.7269] 33.5
Gordan 2009 Repair NA 0.0
Number of studies combined: k = 3
OR 95%-CI z p-value
Random effects model 0.369 [0.0875; 1.5561] -1.36 0.1745
Quantifying heterogeneity:
tau^2 = 0; H = 1.00 [1.00; 2.73]; I^2 = 0.0% [0.0%; 86.5%]
Test of heterogeneity:
Q d.f. p-value
1.55 2 0.4617
Details on meta-analytical method:
- Mantel-Haenszel method
- DerSimonian-Laird estimator for tau^2
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
png(filename = "6.png",
type = "cairo",
units = "in",
width = 10,
height = 5,
pointsize = 12,
res = 96)
forest.meta(meta1,
comb.fixed = FALSE,
sortvar = year,
# LEFT
label.left = "Seal or repair",
col.label.left = "darkgreen",
# RIGHT
label.right = "Replacement",
col.label.right = "darkred")
Unknown or uninitialised column: '.subset'.
dev.off()
null device
1
citation()
To cite R in publications use:
R Core Team (2017). R: A language and environment for statistical computing. R Foundation for Statistical
Computing, Vienna, Austria. URL https://www.R-project.org/.
A BibTeX entry for LaTeX users is
@Manual{,
title = {R: A Language and Environment for Statistical Computing},
author = {{R Core Team}},
organization = {R Foundation for Statistical Computing},
address = {Vienna, Austria},
year = {2017},
url = {https://www.R-project.org/},
}
We have invested a lot of time and effort in creating R, please cite it when using it for data analysis. See also
‘citation("pkgname")’ for citing R packages.
citation(package = "tidyverse")
To cite package ‘tidyverse’ in publications use:
Hadley Wickham (2017). tidyverse: Easily Install and Load the 'Tidyverse'. R package version 1.2.1.
https://CRAN.R-project.org/package=tidyverse
A BibTeX entry for LaTeX users is
@Manual{,
title = {tidyverse: Easily Install and Load the 'Tidyverse'},
author = {Hadley Wickham},
year = {2017},
note = {R package version 1.2.1},
url = {https://CRAN.R-project.org/package=tidyverse},
}
citation(package = "meta")
To cite package 'meta' in publications use:
Guido Schwarzer (2007), meta: An R package for meta-analysis, R News, 7(3), 40-45.
A BibTeX entry for LaTeX users is
@Article{,
title = {meta: {A}n {R} package for meta-analysis},
author = {Guido Schwarzer},
journal = {R News},
year = {2007},
volume = {7},
number = {3},
pages = {40--45},
}
URL https://cran.r-project.org/doc/Rnews/Rnews_2007-3.pdf