graph.data.frame {igraph} | R Documentation

## Creating igraph graphs from data frames

### Description

This function creates an igraph graph from one or two data frames containing the (symbolic) edge list and edge/vertex attributes.

### Usage

    graph.data.frame(d, directed=TRUE, vertices=NULL)

### Arguments

`d` | A data frame containing a symbolic edge list in the first two columns. Additional columns are considered as edge attributes.
`directed` | Logical scalar, whether or not to create a directed graph.
`vertices` | A data frame with vertex metadata, or `NULL`. See details below.

### Details

`graph.data.frame` creates igraph graphs from one or two data frames. It has two modes of operatation, depending whether the `vertices` argument is `NULL` or not.

If `vertices` is `NULL`, then the first two columns of `d` are used as a symbolic edge list and additional columns as edge attributes. The names of the attributes are taken from the names of the columns.

If `vertices` is not `NULL`, then it must be a data frame giving vertex metadata. The first column of `vertices` is assumed to contain symbolic vertex names, this will be added to the graphs as the ‘`name`’ vertex attribute. Other columns will be added as additional vertex attributes. If `vertices` is not `NULL` then the symbolic edge list given in `d` is checked to contain only vertex names listed in `vertices`.

Typically, the data frames are exported from some speadsheat software like Excel and are imported into R via `read.table`, `read.delim` or `read.csv`.

### Value

An igraph graph object.

### Author(s)

Gabor Csardi csardi@rmki.kfki.hu

### See Also

`graph.constructors` and `graph.formula` for other ways to create graphs, `read.table` to read in tables from files.

### Examples

    ## A simple example with a couple of actors
    ## The typical case is that these tables are read in from files....
    actors <- data.frame(name=c("Alice", "Bob", "Cecil", "David",
                                "Esmeralda"),
                         age=c(48,33,45,34,21),
                         gender=c("F","M","F","M","F"))
    relations <- data.frame(from=c("Bob", "Cecil", "Cecil", "David",
                                   "David", "Esmeralda"),
                            to=c("Alice", "Bob", "Alice", "Alice", "Bob", "Alice"),
                            same.dept=c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE),
                            friendship=c(4,5,5,2,1,1), advice=c(4,5,5,4,2,3))
    g <- graph.data.frame(relations, directed=TRUE, vertices=actors)
    print(g, e=TRUE, v=TRUE)

[Package igraph version 0.5.2 Index]