attributes {igraph} | R Documentation |
Attributes are associated values belonging to a graph, vertices or edges. These can represent some property, like data about how the graph was constructed, the color of the vertices when the graph is plotted, or simply the weights of the edges in a weighted graph.
graph <- add.graph.attribute(graph, attrname) graph <- remove.graph.attribute(graph, attrname) get.graph.attribute(graph, attrname=NULL) set.graph.attribute(graph, attrname, value) g.a(graph, attrname=NULL) g.a(graph, attrname) <- value graph <- add.vertex.attribute(graph, attrname) graph <- remove.vertex.attribute(graph, attrname) get.vertex.attribute(graph, attrname=NULL, v=igraph.vs.all(graph)) set.vertex.attribute(graph, attrname, v=igraph.vs.all(graph), value) v.a(graph, attrname=NULL, v=igraph.vs.all(graph)) v.a(graph, attrname, v=igraph.vs.all(graph)) <- value graph <- add.edge.attribute(graph, attrname) graph <- remove.edge.attribute(graph, attrname) get.edge.attribute(graph, attrname=NULL, e=igraph.es.all(graph)) set.edge.attribute(graph, attrname, e=igraph.es.all(graph), value) e.a(graph, attrname=NULL, e=igraph.es.all(graph)) e.a(graph, attrname, e=igraph.es.all(graph)) <- value
graph |
The graph object to work on. Note that the original graph is never modified, a new graph object is returned instead; if don't assign it to a variable your modifications will be lost! See examples below. |
attrname |
Character constant, the name of the attribute. For
query functions this can be NULL , in this case the list of
the attributes will be returned. |
v |
Numeric vector, the ids of the vertices. It is not recycled,
even if value is longer. |
value |
Numeric vector, the new value(s) of the attributes, it will be recycled if needed. |
e |
Numeric vector, the ids of the edges. It is not recycled,
even if value is longer. |
An attribute value is either a numeric constant or a character string.
Each attribute has a name, this is simply a character string. The names of the graph, vertex and edge attributes use different name spaces, so the ‘color’ vertex attribute has nothing to do with the ‘color’ edge attribute.
In order to use an attribute it has to be ‘added’ first by
using the add.*.attribute
functions. The initial values of the
attributes are undefined. After an attribute is added, its value(s)
can be set by the set.*.attribute
functions and queried by the
get.*.attribute
functions.
You can also use the shorter g.a
, v.a
, e.a
forms,
see the examples below, they are shorthands for the
get.*.attribute
and set.*.attribute
functions, the
latter is in effect if it is used on the left hand side of an
assignment, see examples below.
An unneeded attribute can be removed by the remove.*.attribute
functions.
You can list the attributes of a graph by giving attrname=NULL
to the query functions (this is the default), or by
print.igraph
.
The add.*.attribute
and remove.*.attribute
and
set.*.attribute
functions all return a new graph object with the
requested modifications.
The get.*.attribute
functions return numeric or character
vectors, the values of the attributes if the attrname
argument
is not NULL
and a character vector, the name of the attributes
if it is NULL
.
Only numeric constant attributes are implemented right now, string attributes will be added shortly.
Gabor Csardi csardi@rmki.kfki.hu
print.igraph
can also print attributes
g <- graph.star(10) g <- add.graph.attribute(g, "id") g.a(g, "id") remove.graph.attribute(g, "id") ## g is unchanged g.a(g) g.a(g, "id") g <- add.vertex.attribute(g, "size") v.a(g, "size") <- c(1,2) v.a(g, "size") g <- add.edge.attribute(g, "weight") e.a(g, "weight") <- sample(1:100, 20, replace=TRUE) e.a(g, "weight") print.igraph(g, g=TRUE, v=TRUE, e=TRUE) g2 <- graph.star(10) g2 <- add.graph.attribute(g2, "date", "character") g.a(g2, "date") g.a(g2, "date") <- "2005/10/25" g.a(g2, "date") remove.graph.attribute(g2, "date") ## g2 is unchanged g.a(g2) g.a(g2, "date") g2 <- add.vertex.attribute(g2, "id", "character") abc <- strsplit("abcdefghujklmnpqrstuvwxyz", "")[[1]] v.a(g2, "id") <- abc v.a(g2, "id") g2 <- add.edge.attribute(g2, "random", "character") e.a(g2, "random") <- sample(1:100, 20, replace=TRUE) e.a(g2, "random") print.igraph(g2, g=TRUE, v=TRUE, e=TRUE)