Merge a list of graphs into a single graph. Can take in a list of igraphs or a list of igraphs, and can return a merged tbl_graph or a merged igraph.
Usage
merge_graphs(
graph_list,
node_size,
output = c("tidygraph", "igraph"),
by = "ref",
verbose = TRUE
)Arguments
- graph_list
A list of graphs.
- node_size
Strategy for setting node sizes. Can be one of:
- NULL :
Sets the target package node's size to 40 and the rest to 30
.
- <numeric> :
User-provided node size. Sets all nodes to the same size.
- <character> :
User-provided metadata column name. Scales node size to a vector of numeric values in the node metadata.
- output
Output format to return the graph in.
- by
A join specification created with
join_by(), or a character vector of variables to join by.If
NULL, the default,*_join()will perform a natural join, using all variables in common acrossxandy. A message lists the variables so that you can check they're correct; suppress the message by supplyingbyexplicitly.To join on different variables between
xandy, use ajoin_by()specification. For example,join_by(a == b)will matchx$atoy$b.To join by multiple variables, use a
join_by()specification with multiple expressions. For example,join_by(a == b, c == d)will matchx$atoy$bandx$ctoy$d. If the column names are the same betweenxandy, you can shorten this by listing only the variable names, likejoin_by(a, c).join_by()can also be used to perform inequality, rolling, and overlap joins. See the documentation at ?join_by for details on these types of joins.For simple equality joins, you can alternatively specify a character vector of variable names to join by. For example,
by = c("a", "b")joinsx$atoy$aandx$btoy$b. If variable names differ betweenxandy, use a named character vector likeby = c("x_a" = "y_a", "x_b" = "y_b").To perform a cross-join, generating all combinations of
xandy, seecross_join().- verbose
Print messages.
Examples
if (FALSE) { # \dontrun{
set.seed(2023)
graph_list <- example_graphs()
g <- merge_graphs(graph_list)
plot(g, edge.label=igraph::E(g)$color)
} # }