| as.directed {igraph} | R Documentation |
as.directed converts an undirected graph to
directed, as.undirected does the opposite, it converts a directed
graph to undirected.
as.directed(graph, mode = c("mutual", "arbitrary"))
as.undirected(graph, mode = c("collapse", "each", "mutual"),
edge.attr.comb = getIgraphOpt("edge.attr.comb"))
graph |
The graph to convert. |
mode |
Character constant, defines the conversion algorithm. For
|
edge.attr.comb |
Specifies what to do with edge attributes, if
|
Conversion algorithms for as.directed:
arbitraryThe number of edges in the graph stays the same, an arbitrarily directed edge is created for each undirected edge.
mutualTwo directed edges are created for each undirected edge, one in each direction.
Conversion algorithms for as.undirected:
eachThe number of edges remains constant, an undirected edge is created for each directed one, this version might create graphs with multiple edges.
collapseOne undirected edge will be created for each pair of vertices which are connected with at least one directed edge, no multiple edges will be created.
mutualOne undirected edge will be created for each pair of mutual edges. Non-mutual edges are ignored. This mode might create multiple edges if there are more than one mutual edge pairs between the same pair of vertices.
A new graph object.
Gabor Csardi csardi.gabor@gmail.com
simplify for removing multiple and/or loop edges
from a graph.
g <- graph.ring(10)
as.directed(g, "mutual")
g2 <- graph.star(10)
as.undirected(g)
# Combining edge attributes
g3 <- graph.ring(10, directed=TRUE, mutual=TRUE)
E(g3)$weight <- seq_len(ecount(g3))
ug3 <- as.undirected(g3)
print(ug3, e=TRUE)
## Not run:
x11(width=10, height=5)
layout(rbind(1:2))
plot( g3, layout=layout.circle, edge.label=E(g3)$weight)
plot(ug3, layout=layout.circle, edge.label=E(ug3)$weight)
## End(Not run)
g4 <- graph(c(1,2, 3,2,3,4,3,4, 5,4,5,4,
6,7, 7,6,7,8,7,8, 8,7,8,9,8,9,
9,8,9,8,9,9, 10,10,10,10))
E(g4)$weight <- seq_len(ecount(g4))
ug4 <- as.undirected(g4, mode="mutual",
edge.attr.comb=list(weight=length))
print(ug4, e=TRUE)