Tidy a dagitty
object
Arguments
- .dagitty
a
dagitty
- seed
a numeric seed for reproducible layout generation
- layout
a layout available in
ggraph
. Seeggraph::create_layout()
for details. Alternatively,"time_ordered"
will usetime_ordered_coords()
to algorithmically sort the graph by time.- ...
optional arguments passed to
ggraph::create_layout()
- use_existing_coords
(Advanced). Logical. Use the coordinates produced by
dagitty::coordinates(.dagitty)
? If the coordinates are empty,tidy_dagitty()
will generate a layout. Generally, setting this toFALSE
is thus only useful when there is a difference in the variables coordinates and the variables in the DAG, as sometimes happens when recompiling a DAG.
Examples
library(dagitty)
library(ggplot2)
dag <- dagitty("dag {
Y <- X <- Z1 <- V -> Z2 -> Y
Z1 <- W1 <-> W2 -> Z2
X <- W1 -> Y
X <- W2 -> Y
X [exposure]
Y [outcome]
}")
tidy_dagitty(dag)
#> # A DAG with 7 nodes and 12 edges
#> #
#> # Exposure: X
#> # Outcome: Y
#> #
#> # A tibble: 13 × 7
#> name x y direction to xend yend
#> <chr> <dbl> <dbl> <fct> <chr> <dbl> <dbl>
#> 1 V 1.05 0.436 -> Z1 -0.309 0.831
#> 2 V 1.05 0.436 -> Z2 1.44 1.80
#> 3 W1 -0.258 1.82 -> X -0.665 2.29
#> 4 W1 -0.258 1.82 -> Y 0.563 2.27
#> 5 W1 -0.258 1.82 -> Z1 -0.309 0.831
#> 6 W1 -0.258 1.82 <-> W2 0.372 2.86
#> 7 W2 0.372 2.86 -> X -0.665 2.29
#> 8 W2 0.372 2.86 -> Y 0.563 2.27
#> 9 W2 0.372 2.86 -> Z2 1.44 1.80
#> 10 X -0.665 2.29 -> Y 0.563 2.27
#> 11 Y 0.563 2.27 NA NA NA NA
#> 12 Z1 -0.309 0.831 -> X -0.665 2.29
#> 13 Z2 1.44 1.80 -> Y 0.563 2.27
tidy_dagitty(dag, layout = "fr") |>
ggplot(aes(x = x, y = y, xend = xend, yend = yend)) +
geom_dag_node() +
geom_dag_text() +
geom_dag_edges() +
theme_dag()