Detecting colliders in DAGs

is_collider(.dag, .var, downstream = TRUE)

is_downstream_collider(.dag, .var)



an input graph, an object of class tidy_dagitty or dagitty


a character vector of length 1, the potential collider to check


Logical. Check for downstream colliders? Default is TRUE.


Logical. Is the variable a collider or downstream collider?


dag <- dagify(m ~ x + y, m_jr ~ m) is_collider(dag, "m")
#> [1] TRUE
is_downstream_collider(dag, "m_jr")
#> [1] TRUE
# a downstream collider is also treated as a collider is_collider(dag, "m_jr")
#> [1] TRUE
# but a direct collider is not treated as a downstream collider is_downstream_collider(dag, "m")
#> [1] FALSE