Detects any colliders given a DAG. node_collider tags colliders and ggdag_collider plots all exogenous variables.

node_collider(.dag, as_factor = TRUE, ...)

ggdag_collider(.tdy_dag, ..., edge_type = "link_arc", node_size = 16,
  text_size = 3.88, label_size = text_size, text_col = "white",
  label_col = text_col, node = TRUE, stylized = FALSE, text = TRUE,
  use_labels = NULL)

Arguments

.dag, .tdy_dag

input graph, an object of class tidy_dagitty or dagitty

as_factor

treat collider variable as factor

...

additional arguments passed to tidy_dagitty()

edge_type

a character vector, the edge geom to use. One of: "link_arc", which accounts for directed and bidirected edges, "link", "arc", or "diagonal"

node_size

size of DAG node

text_size

size of DAG text

label_size

size of label text

text_col

color of DAG text

label_col

color of label text

node

logical. Should nodes be included in the DAG?

stylized

logical. Should DAG nodes be stylized? If so, use geom_dag_nodes and if not use geom_dag_point

text

logical. Should text be included in the DAG?

use_labels

a string. Variable to use for geom_dag_repel_label(). Default is NULL.

Value

a tidy_dagitty with a collider column for colliders or a ggplot

Examples

dag <- dagify(m ~ x + y, y ~ x) node_collider(dag)
#> # A DAG with 3 nodes and 3 edges #> # #> # A tibble: 4 x 9 #> name x y direction to xend yend circular colliders #> <chr> <dbl> <dbl> <fct> <chr> <dbl> <dbl> <lgl> <fct> #> 1 x 6.69 7.48 -> m 5.92 8.13 FALSE Non-Collider #> 2 x 6.69 7.48 -> y 6.87 8.47 FALSE Non-Collider #> 3 y 6.87 8.47 -> m 5.92 8.13 FALSE Non-Collider #> 4 m 5.92 8.13 <NA> <NA> NA NA FALSE Collider
ggdag_collider(dag)