# dagify: Create a dagitty DAG using R-like syntax In ggdag: Analyze and Create Elegant Directed Acyclic Graphs

## Description

`dagify()` creates dagitty DAGs using a more R-like syntax. It currently accepts formulas in the usual R style, e.g. `y ~ x + z`, which gets translated to `y <- {x z}`, as well as using a double tilde (`~~`) to graph bidirected variables, e.g. `x1 ~~ x2` is translated to `x1 <-> x2`.

## Usage

 ```1 2 3 4 5 6 7 8``` ```dagify( ..., exposure = NULL, outcome = NULL, latent = NULL, labels = NULL, coords = NULL ) ```

## Arguments

 `...` formulas, which are converted to `dagitty` syntax `exposure` a character vector for the exposure (must be a variable name in the DAG) `outcome` a character vector for the outcome (must be a variable name in the DAG) `latent` a character vector for any latent variables (must be a variable name in the DAG) `labels` a named character vector, labels for variables in the DAG `coords` coordinates for the DAG nodes. Can be a named list or a `data.frame` with columns x, y, and name

## Value

a `dagitty` DAG

`dag()`, `coords2df()`, `coords2list()`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33``` ```dagify(y ~ x + z, x~ z) coords <- list( x = c(A = 1, B = 2, D = 3, C = 3, F = 3, E = 4, G = 5, H = 5, I = 5), y = c(A = 0, B = 0, D = 1, C = 0, F = -1, E = 0, G = 1, H = 0, I = -1) ) dag <- dagify(G ~~ H, G ~~ I, I ~~ G, H ~~ I, D ~ B, C ~ B, I ~ C + F, F ~ B, B ~ A, H ~ E, C ~ E + G, G ~ D, coords = coords) dagitty::is.dagitty(dag) ggdag(dag) dag2 <- dagify(y ~ x + z2 + w2 + w1, x ~ z1 + w1, z1 ~ w1 + v, z2 ~ w2 + v, w1 ~~ w2, exposure = "x", outcome = "y") ggdag(dag2) ```