graph-class
Class "graph"
A virtual class that all graph classes should extend.
Details
degree
returns either a named vector (names correspond to the
nodes in the graph) containing the degree for undirected graphs or a
list with two components, inDegree
and outDegree
for
directed graphs.
connComp
returns a list of the connected components. Each
element of this list contains the labels of all nodes in that
component.
For a directed graph or digraph the underlying
graph is the graph that results from removing all direction from
the edges. This can be achieved using the function ugraph
.
A weakly connected component of a digraph is one that is
a connected component of the underlying graph. This is the default for
connComp
. A digraph is strongly connected if
every two vertices are mutually reachable. A strongly connected
component of a digraph, D, is a maximal strongly
connected subdigraph of D. See the RBGL package for an
implementation of Trajan's algorithm to find strongly
connected components (strongComp
).
In the graph implementation of connComp
weak
connectivity is used. If the argument to connComp
is a
directed graph then ugraph
is called to create the
underlying undirected graph and that is used to compute connected
components. Users who want different behavior are encouraged to use
RBGL.
Objects from the Class
A virtual Class: No objects may be created from it.
Slots
edgeData
:- An
attrData
instance for edge attributes. nodeData
:- An
attrData
instance for node attributes. graphData
:- A
list
for graph-level attributes. Only mandatory list item isedgemode
which indicates whether edges are"directed"
or"undirected"
renderInfo
:- A
list
of graph rendering information.
Methods
- nodes
- return a character vector containing the names of the nodes of the graph
- nodes<-
- rename the nodes of the graph
- show
signature(object = "graph")
:A print method for the graph.- acc
signature(object = "graph")
: find all nodes accessible from the specified node.- complement
signature(x = "graph")
: compute the complement of the supplied graph. The complement is defined with respect to the complete graph on the nodes inx
. Currently this returns an object of classgraphNEL
.- connComp
signature(object = "graph")
: find the connected components of a graph.- degree
signature(object = "graph", Nodes = "missing")
: find thedegree
of a node (number of coincident edges).- degree
signature(object = "graph", Nodes = "ANY")
: as above.- degree
signature(object = "MultiGraph", Nodes = "missing")
: find thedegree
of a node (number of coincident edges).- dfs
signature(object = "graph")
: execute a depth first search on a graph starting with the specified node.- edges
signature(object="graph", which="character")
: return the edges indicated bywhich
.which
can be missing in which case all edges are returned or it can be a character vector with the node labels indicating the nodes whose edge lists are wanted.- edgeDataDefaults
- Get and set default attributes for the edges in the graph.
- edgeData
- Get and set attributes for edges in the graph
- edgemode
signature(object="graph")
: return theedgemode
for the graph. Currently this can be eitherdirected
orundirected
.- edgemode<-
signature(object="graph", value="character")
: set theedgemode
for the graph. Currently this can be eitherdirected
orundirected
.- edgeWeights
- Return a list of edge weights in a list format
similar to the
edges
method. - intersection
signature(x = "graph", y = "graph")
: compute the intersection of the two supplied graphs. They must have identical nodes. Currently this returns an object of classgraphNEL
. With edge weights of 1 for any matching edge.- isAdjacent
signature(from="character", to="character")
: Determine if edges exists between nodes.- isConnected
signature(object = "graph")
: A boolean that details if a graph is fully connected or not.- isDirected
- Return
TRUE
if the graph object has directed edges andFALSE
otherwise. - join
signature(x = "graph", y = "graph")
: returns the joining of two graphs. Nodes which are shared by both graphs will have their edges merged. Note that edgeWeights for the resulting graph are all set to 1. Users wishing to preserve weights in a join operation must perform addEdge operations on the resulting graph to restore weights.- nodes<-
- A generic function that allows different
implementations of the
graph
class to reset the node labels - nodeDataDefaults
- Get/set default attributes for nodes in the graph.
- nodeData
- Get/set attributes for nodes in the graph.
- numEdges
signature(object = "graph")
: compute the number of edges in a graph.- numNodes
signature(object = "graph")
: compute the number of nodes in a graph.- plot
- Please see the help page for the
plot,graph-method
method in theRgraphviz
package - union
signature(x = "graph", y = "graph")
: compute the union of the two supplied graphs. They must have identical nodes. Currently this returns an object of classgraphNEL
.- edgeNames
signature(object = "graph")
: Returns a vector of the edge names for this graph, using the formattail\~head
, wherehead
is the name of the tail node andhead
is the name of the head node.- updateGraph
signature(object = "graph")
: Updates old instances of graph objects.
References
Graph Theory and its Applications, J. Gross and J. Yellen.
See Also
Examples
set.seed(123)
g1 <- randomGraph(letters[1:10], 1:4, p= 0.3)
numEdges(g1)
edgeNames(g1)
edges(g1)
edges(g1, c("a","d")) # those incident to 'a' or 'd'