Find all paths between specified nodes in a DAG and determine if they are open or closed given a conditioning set.
Usage
query_paths(
.tdy_dag,
from = NULL,
to = NULL,
directed = FALSE,
limit = 100,
conditioned_on = NULL
)
Arguments
- .tdy_dag
A tidy DAG object.
- from
Character vector of starting nodes. If NULL, uses exposure from DAG.
- to
Character vector of ending nodes. If NULL, uses outcome from DAG.
- directed
Logical. If TRUE, only considers directed paths.
- limit
Maximum number of paths to return. Default is 100.
- conditioned_on
Character vector of variables to condition on.
Value
A tibble with columns:
path_id
: Integer identifier for each pathfrom
: Starting nodeto
: Ending nodepath
: Character string representation of the pathvariables
: List column containing all variables in the pathopen
: Logical indicating if the path is open
Examples
library(ggdag)
dag <- dagify(
y ~ x + z,
x ~ w,
z ~ w,
exposure = "x",
outcome = "y"
)
query_paths(dag)
#> # A tibble: 2 × 6
#> path_id from to path variables open
#> <int> <chr> <chr> <chr> <list> <lgl>
#> 1 1 x y x -> y <chr [2]> TRUE
#> 2 2 x y x <- w -> z -> y <chr [4]> TRUE
query_paths(dag, conditioned_on = "z")
#> # A tibble: 2 × 6
#> path_id from to path variables open
#> <int> <chr> <chr> <chr> <list> <lgl>
#> 1 1 x y x -> y <chr [2]> TRUE
#> 2 2 x y x <- w -> z -> y <chr [4]> FALSE