library(simDAG)
# define some initial DAG
dag <- empty_dag() +
node("death", "binomial", c("age", "sex"), betas=c(1, 2), intercept=-10) +
node("age", type="rnorm", mean=10, sd=2) +
node("sex", parents="", type="rbernoulli", p=0.5) +
node("smoking", parents=c("sex", "age"), type="binomial",
betas=c(0.6, 0.2), intercept=-2)
# return new DAG with do(smoking = TRUE)
dag2 <- do(dag, names="smoking", values=TRUE)
# which is equivalent to
dag2 <- empty_dag() +
node("death", "binomial", c("age", "sex"), betas=c(1, 2), intercept=-10) +
node("age", type="rnorm", mean=10, sd=2) +
node("sex", parents="", type="rbernoulli", p=0.5) +
node("smoking", type="rconstant", constant=TRUE)
# use do() on multiple variables: do(smoking = TRUE, sex = FALSE)
dag2 <- do(dag, names=c("smoking", "sex"), values=list(TRUE, FALSE))
Run the code above in your browser using DataLab