Parents and children are those nodes that either directly cause or are caused
by the variable, respectively. Ancestors and descendants are those nodes that
are on the path to or descend from the variable. The node_*()
functions label variables depending on their relationship. The
ggdag_*()
functions plot the results. See
dagitty::children for details.
Usage
node_children(.tdy_dag, .var, as_factor = TRUE)
node_parents(.tdy_dag, .var, as_factor = TRUE)
node_ancestors(.tdy_dag, .var, as_factor = TRUE)
node_descendants(.tdy_dag, .var, as_factor = TRUE)
node_markov_blanket(.tdy_dag, .var, as_factor = TRUE)
node_adjacent(.tdy_dag, .var, as_factor = TRUE)
ggdag_children(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
ggdag_parents(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
ggdag_ancestors(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
ggdag_descendants(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
ggdag_markov_blanket(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
ggdag_adjacent(
.tdy_dag,
.var,
...,
size = 1,
edge_type = c("link_arc", "link", "arc", "diagonal"),
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 8,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label_geom = geom_dag_label_repel,
unified_legend = TRUE,
text = NULL,
label = NULL,
node = deprecated(),
stylized = deprecated()
)
Arguments
- .tdy_dag
A
tidy_dagitty
ordagitty
object- .var
a character vector, the variable to be assessed (must by in DAG)
- as_factor
Logical. Should the column be a factor?
- ...
additional arguments passed to
tidy_dagitty()
- size
A numeric value scaling the size of all elements in the DAG. This allows you to change the scale of the DAG without changing the proportions.
- 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
The size of the nodes.
- text_size
The size of the text.
- label_size
The size of the labels.
- text_col
The color of the text.
- label_col
The color of the labels.
- edge_width
The width of the edges.
- edge_cap
The size of edge caps (the distance between the arrowheads and the node borders).
- arrow_length
The length of arrows on edges.
- use_edges
A logical value. Include a
geom_dag_edges*()
function? IfTRUE
, which is determined byedge_type
.- use_nodes
A logical value. Include
geom_dag_point()
?- use_stylized
A logical value. Include
geom_dag_node()
?- use_text
A logical value. Include
geom_dag_text()
?- use_labels
A logical value. Include a label geom? The specific geom used is controlled by
label_geom
.- label_geom
A geom function to use for drawing labels when
use_labels = TRUE
. Default isgeom_dag_label_repel
. Other options includegeom_dag_label
,geom_dag_text_repel
,geom_dag_label_repel2
, andgeom_dag_text_repel2
.- unified_legend
A logical value. When
TRUE
and bothuse_edges
anduse_nodes
areTRUE
, creates a unified legend entry showing both nodes and edges in a single key, and hides the separate edge legend. This creates cleaner, more compact legends. Default isTRUE
.- text
The bare name of a column to use for
geom_dag_text()
. Ifuse_text = TRUE
, the default is to usename
.- label
The bare name of a column to use for labels. If
use_labels = TRUE
, the default is to uselabel
.- node
Deprecated.
- stylized
Deprecated.
Value
a tidy_dagitty
with an column related to the given
relationship for variable D relationship or a ggplot
Examples
library(ggplot2)
dag <- dagify(
y ~ x + z2 + w2 + w1,
x ~ z1 + w1,
z1 ~ w1 + v,
z2 ~ w2 + v,
w1 ~ ~w2
)
ggdag_children(dag, "w1")
dag |>
node_children("w1") |>
ggplot(aes(x = x, y = y, xend = xend, yend = yend, color = children)) +
geom_dag_edges() +
geom_dag_node() +
geom_dag_text(col = "white") +
geom_dag_label_repel(aes(label = children, fill = children),
col = "white", show.legend = FALSE) +
theme_dag() +
scale_adjusted(include_color = FALSE) +
scale_color_hue(breaks = c("parent", "child"))
ggdag_parents(dag, "y")
ggdag_ancestors(dag, "x")
ggdag_descendants(dag, "w1")
dag |>
node_parents("y") |>
ggplot(aes(x = x, y = y, xend = xend, yend = yend, color = parent)) +
geom_dag_edges() +
geom_dag_point() +
geom_dag_text(col = "white") +
geom_dag_label_repel(aes(label = parent, fill = parent),
col = "white", show.legend = FALSE) +
theme_dag() +
scale_adjusted(include_color = FALSE) +
scale_color_hue(breaks = c("parent", "child"))