R: A data structure for tidy graph manipulation

as_tbl_graph.data.frame {tidygraph} | R Documentation

## A data structure for tidy graph manipulation

### Description

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 class 'data.frame'
    as_tbl_graph(x, directed = TRUE, ...)

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

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

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

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

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

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

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

    ## S3 method for class 'list'
    as_tbl_graph(x, directed = TRUE, node_key = "name", ...)

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

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

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

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

    tbl_graph(nodes = NULL, edges = NULL, directed = TRUE, node_key = "name")

    as_tbl_graph(x, ...)

    ## Default S3 method:
    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"`.
`node_key` | The name of the column in `nodes` that character represented `to` and `from` columns should be matched against. If `NA` the first column is always chosen. This setting has no effect if `to` and `from` are given as integers.
`nodes` | A `data.frame` containing information about the nodes in the graph. If `edges$to` and/or `edges$from` are characters then they will be matched to the column named according to `node_key` in nodes, if it exists. If not, they will be matched to the first column.
`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

    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)

[Package tidygraph version 1.2.0 Index]