Simulate a multiplex network
Arguments
- nodes
Number of nodes or unique labels shared across layers.
- layers
Number of layers or unique layer labels.
- edges
Optional exact edge count, scalar or one value per layer.
- probability
Edge probability, scalar or one value per layer.
- directed
Generate directed edges.
- loops
Permit self-loops.
- weight
Edge-weight distribution.
- weight_mean, weight_sd, weight_range
Weight parameters.
- node_type
Optional node type for each node.
- seed
Optional base seed; layers use deterministic offsets.
- batch
Optional single positive whole number. When given, the simulator runs
batchtimes and returns a plainlistofbatchresults, each exactly what the same call withoutbatchreturns. With aseed, every dataset gets its own seed drawn fromseed, so the whole batch is reproducible; without one the datasets are consecutive draws from the session's random-number stream. The defaultNULLreturns a single result.
Value
A tidy layered edge-list simulab_sim base data.frame with one row
per edge and columns layer, from, to, and weight. Every layer is
drawn independently over the same node set.
as.data.frame(x, what = ) also returns nodes (node, type),
layers (layer, probability), adjacency (a long
layer/row/column/weight table over all ordered node pairs in every
layer), and a one-row settings table.
Examples
result <- simulate_multiplex_network(nodes = 25, layers = 3, probability = 0.1, seed = 1)
head(result)
#> <simulab_sim:multiplex_network> 6 rows x 4 columns
#> layer from to weight
#> 1 Layer 1 Node 5 Node 1 1
#> 2 Layer 1 Node 8 Node 1 1
#> 3 Layer 1 Node 19 Node 1 1
#> 4 Layer 1 Node 22 Node 1 1
#> 5 Layer 1 Node 14 Node 3 1
#> 6 Layer 1 Node 9 Node 4 1
#>
#> Truth (settings):
#> layers directed loops weight
#> 1 3 TRUE FALSE binary
#>
#> Other tables: nodes, layers, adjacency. Read one with as.data.frame(x, what = "nodes").
components(result)
#> table rows columns
#> 1 data 182 4
#> 2 nodes 25 2
#> 3 layers 3 2
#> 4 adjacency 1875 4
#> 5 settings 1 4