Description Usage Arguments Details Value Author(s) References Examples
Creates a rainforest, thick forest, or classic forest plot.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | viz_forest(
x,
group = NULL,
type = "standard",
variant = "classic",
method = "FE",
study_labels = NULL,
summary_label = NULL,
confidence_level = 0.95,
col = "Blues",
summary_col = col,
text_size = 3,
xlab = "Effect",
x_limit = NULL,
x_trans_function = NULL,
x_breaks = NULL,
annotate_CI = FALSE,
study_table = NULL,
summary_table = NULL,
table_headers = NULL,
table_layout = NULL,
...
)
|
x |
data.frame or matrix with the effect sizes of all studies (e.g.,
correlations, log odds ratios, or Cohen d) in the first column and their
respective standard errors in the second column. Alternatively, x can be the
output object of function |
group |
factor indicating the subgroup of each study to plot a subgroup forest plot. Has to be in the same order than |
type |
character string indicating the type of forest plot to be plotted. Can be "standard" (default), "study_only", "summary_only", "cumulative", or "sensitivity". See 'Details'. |
variant |
character string indicating the forest plot variant that should be plotted. Can be "classic" (default) for a traditional forest plot, "rain" for rainforest plot, "thick" for a thick forest plot. |
method |
character string indicating which method should be used to compute the study weights and summary effect(s).
Can be any method argument from function |
study_labels |
a character vector with names/identifiers to annotate each study in the forest plot.
Has to be in the same order than |
summary_label |
a character string specifying the name to annotate the summary effect. If a subgroup
analysis is plotted, |
confidence_level |
numeric value. The confidence level for the plotted confidence intervals. |
col |
character string specifying the main color for plotting study-level results. For |
summary_col |
character string specifying the main color for plotting the summary effect(s). For |
text_size |
numeric value. Size of text in the forest plot. Default is 3. |
xlab |
character string specifying the label of the x axis. By default also used for the header of the aligned table if |
x_limit |
numeric vector of length 2 with the limits (minimum, maximum) of the x axis. |
x_trans_function |
function to transform the labels of the x axis. Common uses are to transform
log-odds-ratios or log-risk-ratios with |
x_breaks |
numeric vector of values for the breaks on the x-axis. When used in tandem with |
annotate_CI |
logical scalar. Should the effect size and confidence interval values be shown as text in an aligned table on the right-hand side of the forest plot? |
study_table |
a data.frame with additional study-level variables which should be shown in an aligned table.
Has to be in the same order than |
summary_table |
a data.frame with additional summary-level information shown in an aligned table.
If |
table_headers |
character vector. Headers for each column of aligned tables via |
table_layout |
numeric layout matrix passed to |
... |
further arguments passed to |
The forest plot is the most widely used display to visualize meta-analytic results.
The function viz_forest
creates visually appealing and informative-rich forest plots using ggplot2. Many options
to flexibly customize the visual appearance and statistical information displayed are provided. In addition,
rainforest plots as well as the thick forest plots can be created, two variants and enhancements of the
classical forest plot recently proposed by Schild and Voracek (2015). For further details see the documentation of
the wrapper functions viz_rainforest
, and viz_thickforest
.
Available forest plot types
Different aspects of meta-analytic data can be shown in forest plots. Five different types are available in viz_forest
via the type
parameter.
Argument "standard"
(default) shows study results as well as summary results in the forest plot. "study_only"
allows to only show study results without the meta-analytic summary estimate.
"summary_only"
can be used to only show meta-analytic summary estimate(s), which is primarily useful to visualize several subgroup results (using group
).
"cumulative"
shows a cumulative meta-analysis, that is, meta-analytic summary effects are computed sequentially by adding each study one-by-one.
Studies are added in the same order than they were supplied in x
. Finally, "sensitivity"
shows for each study the meta-analytic summary
effect if that particular study is not considered in the computation of the summary effect (leave-one-out analysis).
A forest plot is created using ggplot2.
Michael Kossmeier* <michael.kossmeier@univie.ac.at>
Ulrich S. Tran* <ulrich.tran@univie.ac.at>
Martin Voracek* <martin.voracek@univie.ac.at>
*Department of Basic Psychological Research and Research Methods, School of Psychology, University of Vienna
Schild, A. H., & Voracek, M. (2015). Finding your way out of the forest without a trail of bread crumbs: Development and evaluation of two novel displays of forest plots. Research Synthesis Methods, 6, 74-86.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | library(metaviz)
# Plotting the mozart data using a classic forest plot
viz_forest(x = mozart[, c("d", "se")],
study_labels = mozart[, "study_name"], xlab = "Cohen d")
# Subgroup analysis of published and unpublished studies shown in a rainforest plot
viz_forest(x = mozart[, c("d", "se")], study_labels = mozart[, "study_name"], method = "REML",
variant = "rain", summary_label = c("Summary (rr_lab = no)", "Summary (rr_lab = yes)"),
group = mozart[, "rr_lab"], xlab = "Cohen d")
# Thick forest plot with additional information in aligned tables. Log risk
# ratios are labeled in their original metric (risk ratios) on the x axis.
viz_forest(x = exrehab[, c("logrr", "logrr_se")], variant = "thick",
xlab = "RR", x_trans_function = exp, annotate_CI = TRUE,
study_table = data.frame(
Name = exrehab[, "study_name"],
eventsT = paste(exrehab$ai, "/", exrehab$ai + exrehab$bi, sep = ""),
eventsC = paste(exrehab$ci, "/", exrehab$ci + exrehab$di, sep = "")),
summary_table = data.frame(
Name = "Summary",
eventsT = paste(sum(exrehab$ai), "/", sum(exrehab$ai + exrehab$bi), sep = ""),
eventsC = paste(sum(exrehab$ci), "/", sum(exrehab$ci + exrehab$di), sep = "")),
table_layout = matrix(c(1, 1, 2, 2, 3), nrow = 1))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.