Coerce an object to class "igraph"
Coerce objects to class "igraph".
asIgraph(x, ...) ## S3 method for class 'network' asIgraph(x, amap = attrmap(), ...) ## S3 method for class 'data.frame' asIgraph(x, directed = TRUE, vertices = NULL, vnames = NULL, ...)
x |
R object to be converted |
amap |
data.frame with attribute copy/rename rules, see
|
directed |
logical, whether the created network should be directed |
vertices |
NULL or data frame, optional data frame containing vertex attributes |
vnames |
character, name of the column in |
... |
other arguments from/to other methods |
asIgraph
is a generic function with methods written for data frames
and objects of class "network".
If x
is a data frame, the method used is a wrapper around
graph.data.frame
in package igraph. The
vnames
argument was added so that the user can specify which vertex
attribute from the data frame supplied through vertices
argument is
used for vertex names (the name
attribute in igraph
objects) in
the returned result. By default the vertex names are not created.
If x
is of class "network" (package network) the function
uses asDF
to extract data on edges and vertex with their
attributes (if present). Network attributes are extracted as well. Not all
vertex/edge/network attributes are worth preserving though. Attributes are
copied, dropped or renamed based on rules given in the amap
argument, see attrmap
for details. The function currently does
not support objects that represent neither bipartite networks nor
hypergraphs.
Object of class "igraph".
### using 'asIgraph' on objects of class 'network' g <- asIgraph(exNetwork) # compare adjacency matrices netmat <- as.matrix(exNetwork, "adjacency") imat <- as.matrix(g, "adjacency") # drop the dimnames in 'netmat' dimnames(netmat) <- NULL # compare identical( netmat, imat ) ### using 'asIgraph' on data.frames # data frame with vertex ids and vertex attributes v <- 1:4 vd <- data.frame(id = v + 5, label=letters[1:4]) print(vd) # edge list (first two columns) and edge attributes e <- c(1,2, 2,3, 3,4, 4,1) ed <- data.frame(id1 = e[seq(1,8, by=2)]+5, id2=e[seq(2, 8, by=2)]+5, a=letters[1:4]) print(ed) # build the network # without vertex attributes g <- asIgraph(ed, directed=FALSE) # with vertex attributes gv <- asIgraph(ed, vertices=vd, directed=FALSE) # NOTE: Even though vertex ids start at 6 the network has 4 nodes: range(vd$id) # min and max of node ids if(require(igraph)) igraph::vcount(gv) # number of nodes in 'gv'
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.