graph-operators-by-name
From igraph v0.6.5-2
by Gabor Csardi
Graph operators based on symbolic vertex names
Normally igraph operators are based on internal igraph vertex ids. This function works with vertex names instead.
- Keywords
- graphs
Usage
graph.intersection.by.name(g1, g2, keep.x.vertices = FALSE,
keep.x.vertex.attributes = FALSE,
keep.x.edge.attributes = FALSE)
graph.union.by.name(g1, g2)
graph.difference.by.name(g1, g2, keep.x.vertex.attributes = FALSE,
keep.x.edge.attributes = FALSE)
Arguments
- g1,g2
- The input graphs, they should be both directed or both undirected.
- keep.x.vertices
- Logical scalar, whether to keep all the
vertices of
g1
, even if they do not appear ing2
. - keep.x.vertex.attributes
- Logical scalar, whether to keep all
vertex attributes of the
g1
, even if they do not appear ing2
. - keep.x.edge.attributes
- Logical scalar, whether to keep edge
attributes of
g1
, even if they do not appear ing2
.
Details
These functions treat the graphs as sets of ordered (if they are directed), or unordered (if they are undirected) pairs of symbolic vertex names and perform set operations on them.
Value
- A new graph object.
concept
Graph operators
See Also
graph.union
, link{graph.intersection}
and
link{graph.difference}
for the functions that are based on
vertex ids.
Examples
# Print attributes as well
igraph.options(print.vertex.attributes=TRUE,
print.edge.attributes=TRUE)
# Creating a wheel graph
g1 <- graph.ring(10)
V(g1)$name <- letters[1:vcount(g1)]
g2 <- graph.star(11, mode="undirected")
V(g2)$name <- c("z", letters[1:vcount(g1)])
g <- graph.union.by.name(g1, g2)
if (interactive()) {
plot(g, layout=layout.kamada.kawai, vertex.label=V(g)$name)
}
g
# Some more examples
g1 <- graph.formula(a-b-c)
V(g1)$v.attr=c(1,2,3)
E(g1)$e.attr=c(5,7)
g2 <- graph.formula(b-c-d)
# Test the functions
graph.intersection.by.name(g1,g2) # Vertices are intersected as well
graph.union.by.name(g1,g2) # Vertices are unioned as well
graph.difference.by.name(g1,g2) # Vertices from x (g1) are used
# graph.intersection.by.name() has some extra parameters
graph.intersection.by.name(g1,g2,
keep.x.vertices = TRUE) # Keep all x vertices (only intersect edges)
graph.intersection.by.name(g1,g2,
keep.x.vertices = FALSE, # Keep all x vertices (only intersect edges)
keep.x.vertex.attributes = TRUE, # Don't throw away V(g1) attributes
keep.x.edge.attributes = TRUE) # Don't throw away E(g1) attributes
# graph.difference.by.name() has some extra parameters
graph.difference.by.name(g1,g2,
keep.x.vertex.attributes = TRUE, # Don't throw away V(g1) attributes
keep.x.edge.attributes = TRUE) # Don't throw away E(g1) attributes
Community examples
Looks like there are no examples yet.