# graph.formula

##### Creating (small) graphs via a simple interface

This function is useful if you want to create a small (named) graph quickly, it works for both directed and undirected graphs.

- Keywords
- graphs

##### Usage

`graph.formula(..., simplify = TRUE)`

##### Arguments

- ...
- The formulae giving the structure of the graph, see details below.
- simplify
- Logical scalar, whether to call
`simplify`

on the created graph. By default the graph is simplified, loop and multiple edges are removed.

##### Details

`graph.formula`

is very handy for creating small graphs quickly.
You need to supply one or more R expressions giving the structure of
the graph. The expressions consist of vertex names and edge
operators. An edge operator is a sequence of `-`

`+`

`-`

If all edge operators consist of only `-`

`+`

Let us see some simple examples. Without arguments the function creates an empty graph: graph.formula()

A simple undirected graph with two vertices called

Remember that the length of the edges does not matter, so we could have written the following, this creates the same graph: graph.formula( A-----B )

If you have many disconnected components in the graph, separate them with commas. You can also give isolate vertices. graph.formula( A--B, C--D, E--F, G--H, I, J, K )

The `:`

In directed graphs, edges will be created only if the edge operator
includes a arrow head (*at the end* of the edge:
graph.formula( A -+ B -+ C )
graph.formula( A +- B -+ C )
graph.formula( A +- B -- C )
Thus in the third example no edge is created between vertices `B`

and `C`

.

Mutual edges can be also created with a simple edge operator:
graph.formula( A +-+ B +---+ C ++ D + E)
Note again that the length of the edge operators is arbitrary,
`+`

`++`

`+-----+`

If the vertex names include spaces or other special characters then
you need to quote them:
graph.formula( "this is" +- "a silly" -+ "graph here" )
You can include any character in the vertex names this way, even

See more examples below.

##### Value

- A new graph object.

##### See Also

`graph`

for more general graph creation methods.

##### Examples

```
# A simple undirected graph
g <- graph.formula( Alice-Bob-Cecil-Alice, Daniel-Cecil-Eugene, Cecil-Gordon )
g
# Another undirected graph, ":" notation
g2 <- graph.formula( Alice-Bob:Cecil:Daniel, Cecil:Daniel-Eugene:Gordon )
g2
# A directed graph
g3 <- graph.formula( Alice +-+ Bob --+ Cecil +-- Daniel,
Eugene --+ Gordon:Helen )
g3
# A graph with isolate vertices
g4 <- graph.formula( Alice -- Bob -- Daniel, Cecil:Gordon, Helen )
g4
V(g4)$name
# "Arrows" can be arbitrarily long
g5 <- graph.formula( Alice +---------+ Bob )
g5
# Special vertex names
g6 <- graph.formula( "+" -- "-", "*" -- "/", "%%" -- "%/%" )
g6
```

*Documentation reproduced from package igraph, version 0.6.5-2, License: GPL (>= 2)*