# as_tbl_graph.data.frame

##### A data structure for tidy graph manipulation

The `tbl_graph`

class is a thin wrapper around an `igraph`

object that
provides methods for manipulating the graph using the tidy API. As it is just
a subclass of `igraph`

every igraph method will work as expected. A
`grouped_tbl_graph`

is the equivalent of a `grouped_df`

where either the
nodes or the edges has been grouped. The `grouped_tbl_graph`

is not
constructed directly but by using the `group_by()`

verb. After creation of a
`tbl_graph`

the nodes are activated by default. The context can be changed
using the `activate()`

verb and affects all subsequent operations. Changing
context automatically drops any grouping. The current active context can
always be extracted with `as_tibble()`

, which drops the graph structure and
just returns a `tbl_df`

or a `grouped_df`

depending on the state of the
`tbl_graph`

. The returned context can be overriden by using the `active`

argument in `as_tibble()`

.

##### Usage

```
# S3 method for data.frame
as_tbl_graph(x, directed = TRUE, ...)
```# S3 method for Node
as_tbl_graph(x, directed = TRUE, mode = "out", ...)

# S3 method for dendrogram
as_tbl_graph(x, directed = TRUE, mode = "out",
...)

# S3 method for graphNEL
as_tbl_graph(x, ...)

# S3 method for graphAM
as_tbl_graph(x, ...)

# S3 method for graphBAM
as_tbl_graph(x, ...)

# S3 method for hclust
as_tbl_graph(x, directed = TRUE, mode = "out", ...)

# S3 method for igraph
as_tbl_graph(x, ...)

# S3 method for list
as_tbl_graph(x, directed = TRUE, ...)

# S3 method for matrix
as_tbl_graph(x, directed = TRUE, ...)

# S3 method for network
as_tbl_graph(x, ...)

# S3 method for phylo
as_tbl_graph(x, directed = NULL, ...)

# S3 method for evonet
as_tbl_graph(x, directed = TRUE, ...)

tbl_graph(nodes = NULL, edges = NULL, directed = TRUE)

as_tbl_graph(x, ...)

# S3 method for default
as_tbl_graph(x, ...)

is.tbl_graph(x)

##### Arguments

- x
An object convertible to a

`tbl_graph`

- directed
Should the constructed graph be directed (defaults to

`TRUE`

)- ...
Arguments passed on to the conversion function

- mode
In case

`directed = TRUE`

should the edge direction be away from node or towards. Possible values are`"out"`

(default) or`"in"`

.- nodes
A

`data.frame`

containing information about the nodes in the graph.- edges
A

`data.frame`

containing information about the edges in the graph. The terminal nodes of each edge must either be encoded in a`to`

and`from`

column, or in the two first columns, as integers. These integers refer to`nodes`

index.

##### Details

Constructors are provided for most data structures that resembles networks.
If a class provides an `igraph::as.igraph()`

method it is automatically
supported.

##### Value

A `tbl_graph`

object

##### Methods (by generic)

`as_tbl_graph`

: Method for edge table and set membership table`as_tbl_graph`

: Method to deal with Node objects from the data.tree package`as_tbl_graph`

: Method for dendrogram objects`as_tbl_graph`

: Method for handling graphNEL objects from the graph package (on Bioconductor)`as_tbl_graph`

: Method for handling graphAM objects from the graph package (on Bioconductor)`as_tbl_graph`

: Method for handling graphBAM objects from the graph package (on Bioconductor)`as_tbl_graph`

: Method for hclust objects`as_tbl_graph`

: Method for igraph object. Simply subclasses the object into a`tbl_graph`

`as_tbl_graph`

: Method for adjacency lists and lists of node and edge tables`as_tbl_graph`

: Method for edgelist, adjacency and incidence matrices`as_tbl_graph`

: Method to handle network objects from the`network`

package. Requires this packages to work.`as_tbl_graph`

: Method for handling phylo objects from the ape package`as_tbl_graph`

: Method for handling evonet objects from the ape package`as_tbl_graph`

: Default method. tries to call`igraph::as.igraph()`

on the input.

##### Examples

```
# NOT RUN {
rstat_nodes <- data.frame(name = c("Hadley", "David", "Romain", "Julia"))
rstat_edges <- data.frame(from = c(1, 1, 1, 2, 3, 3, 4, 4, 4),
to = c(2, 3, 4, 1, 1, 2, 1, 2, 3))
tbl_graph(nodes = rstat_nodes, edges = rstat_edges)
# }
```

*Documentation reproduced from package tidygraph, version 1.1.2, License: MIT + file LICENSE*