To an existing graph object, add a graph built according to the Watts-Strogatz small-world model, which uses a lattice along with a rewiring probability to randomly modify edge definitions.
Usage
add_smallworld_graph(
graph,
dimension,
size,
neighborhood,
p,
loops = FALSE,
multiple = FALSE,
type = NULL,
label = TRUE,
rel = NULL,
node_aes = NULL,
edge_aes = NULL,
node_data = NULL,
edge_data = NULL,
set_seed = NULL
)
Arguments
- graph
A graph object of class
dgr_graph
.- dimension
The dimension of the starting lattice.
- size
The size of the lattice across each dimension.
- neighborhood
The neighborhood where the lattice nodes are to be connected.
- p
The rewiring probability.
- loops
A logical value (default is
FALSE
) that governs whether loops are allowed to be created.- multiple
A logical value (default is
FALSE
) that governs whether multiple edges are allowed to be created.- type
An optional string that describes the entity type for all the nodes to be added.
- label
A logical value where setting to
TRUE
ascribes node IDs to the label andFALSE
yields a blank label.- rel
An optional string for providing a relationship label to all edges to be added.
- node_aes
An optional list of named vectors comprising node aesthetic attributes. The helper function
node_aes()
is strongly recommended for use here as it contains arguments for each of the accepted node aesthetic attributes (e.g.,shape
,style
,color
,fillcolor
).- edge_aes
An optional list of named vectors comprising edge aesthetic attributes. The helper function
edge_aes()
is strongly recommended for use here as it contains arguments for each of the accepted edge aesthetic attributes (e.g.,shape
,style
,penwidth
,color
).- node_data
An optional list of named vectors comprising node data attributes. The helper function
node_data()
is strongly recommended for use here as it helps bind data specifically to the created nodes.- edge_data
An optional list of named vectors comprising edge data attributes. The helper function
edge_data()
is strongly recommended for use here as it helps bind data specifically to the created edges.- set_seed
Supplying a value sets a random seed of the
Mersenne-Twister
implementation.
Examples
# Create an undirected smallworld
# graph with 100 nodes using
# a probability value of 0.05
smallworld_graph <-
create_graph(
directed = FALSE) %>%
add_smallworld_graph(
dimension = 1,
size = 50,
neighborhood = 1,
p = 0.05,
set_seed = 23)
# Get a count of nodes
smallworld_graph %>% count_nodes()
#> [1] 50
# Get a count of edges
smallworld_graph %>% count_edges()
#> [1] 50