# randomDAG: Generate a Directed Acyclic Graph (DAG) randomly In pcalg: Methods for Graphical Models and Causal Inference

## Description

Generate a random Directed Acyclic Graph (DAG). The resulting graph is topologically ordered from low to high node numbers.

## Usage

 `1` ```randomDAG(n, prob, lB = 0.1, uB = 1, V = as.character(1:n)) ```

## Arguments

 `n` Number of nodes, N >= 2. `prob` Probability of connecting a node to another node with higher topological ordering. `lB, uB` Lower and upper limit of edge weights, chosen uniformly at random, i.e., by `runif(., min=lB, max=uB)`. `V` `character` vector length `n` of node names.

## Details

The `n` nodes are ordered. Start with first node. Let the number of nodes with higher order be k. Then, the number of neighbouring nodes is drawn as Bin(k, `prob`). The neighbours are then drawn without replacement from the nodes with higher order. For each node, a weight is uniformly sampled from `lB` to `uB`. This procedure is repeated for the next node in the original ordering and so on.

## Value

An object of class `"graphNEL"`, see `graph-class` from package graph, with `n` named ("1" to "n") nodes and directed edges. The graph is topologically ordered. Each edge has a weight between `lB` and `uB`.

## Author(s)

Markus Kalisch ([email protected]) and Martin Maechler

`randDAG` for a more elaborate version of this function; `rmvDAG` for generating data according to a DAG; `compareGraphs` for comparing the skeleton of a DAG with some other undirected graph (in terms of TPR, FPR and TDR).

## Examples

 ```1 2 3 4``` ```set.seed(101) myDAG <- randomDAG(n = 20, prob= 0.2, lB = 0.1, uB = 1) ## require(Rgraphviz) plot(myDAG) ```

### Example output

```Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

The following objects are masked from 'package:base':

Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
rbind, rownames, sapply, setdiff, sort, table, tapply, union,
unique, unsplit, which, which.max, which.min
```

pcalg documentation built on June 5, 2018, 1:05 a.m.