You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modified basic structure of node and edge data frames such that ID values are automatically set as integer values
Just as nodes do, edges now have edge ID values (they can be obtained using get_edge_ids() and they can be used directly in the select_edges_by_edge_id() function)
When created, a graph object automatically generates a graph ID and graph name (which can be modified using set_graph_name())
So long as node label values are unique, they may now be used to compose edges using the add_edge() function with use_labels = TRUE
Quickly and flexibly add color to nodes and edges using the colorize_node_attrs() and colorize_edge_attrs() functions
Added functions to selectively modify existing node and edge attributes: copy_[node/edge]_attrs(), drop_[node/edge]_attrs(), mutate_[node/edge]_attrs(), recode_[node/edge]_attrs(), rename_[node/edge]_attrs(), and rescale_[node/edge]_attrs().
New node and edge attributes can now be easily added to a graph via a data frame using the join_node_attrs() and join_edge_attrs() functions
Several graph generators are available for quickly adding graph primitives to a graph object (add_balanced_tree(), add_cycle(), add_full_graph(), add_path(), add_prism(), and add_star())
All traversal functions can now migrate numeric node or edge attribute values to the traversed edges (e.g., trav_out_edge(), trav_in_node()) by providing an attribute name to copy_attrs_from; for those traversal functions where nodes or edges may receive multiple values, one can specify an aggregation type in their agg argument (e.g,. trav_in_node(), trav_both_edge())
Multiple conditions can be specified for all traversal types, plus, they are now much easier to write
Added the mk_cond() helper function for creating conditions for any of the traversal functions (trav_...()), and, the select_nodes() and select_edges() functions; this helper allows for easier composition of selection/traversal conditions using variables and/or function calls
With a selection of edges one can now use select_rev_edges_ws() to transform that selection to that of the selected edges' reverse edges (where available); the option is there to add the reverse edges to the edge selection or to simply replace the current selection
Caching attributes for later use has been made simpler with a collection of cache_...() functions (or, set the cache explicitly using set_cache()); get the graph's cache using the get_cache() function
Added functions to allow for layout control of nodes (set_node_position(), layout_nodes_w_string(), nudge_node_positions())
Added functions to convert DiagrammeR graphs to igraph graphs and vice versa (to_igraph(), from_igraph())
Now you can create a graph from an adjacency matrix (from_adj_matrix())
Added functions to get community membership with a variety of algorithms: get_cmty_edge_btwns(), get_cmty_fast_greedy(), get_cmty_l_eigenvec(), get_cmty_louvain(), and get_cmty_walktrap().
Added functions to determine similarity coefficient scores for graph nodes: get_dice_similarity() and get_jaccard_similarity().
Constraint scores for nodes can now be determined using the get_constraint() function
Functions for getting information on nodes neighbors have been added: get_nbrs(), get_non_nbrs(), get_similar_nbrs().
Groups of nodes that are weakly or strongly connected components can be determined using the get_w_connected_cmpts() and get_s_connected_cmpts() functions
Get articulation points (i.e., nodes that, when removed, disconnect the graph) with the get_articulation_points() function
Obtain centrality measures for graph nodes using the get_closeness() and get_betweenness() functions
Get the minimum-spanning tree subgraph from a graph with weighted edges using the get_min_spanning_tree() function
The edge direction may be reversed for an entire graph (rev_edge_dir()) or for part of a graph using an edge selection (rev_edge_dir_ws())
Depth-first search and breadth-first search algorithms are available in the do_dfs() and do_bfs() functions
Degree data for plots can now be easily obtained using the get_degree_distribution() and get_degree_histogram() functions
Global graph attributes are now more easily modifiable using a set of functions for this purpose: add_global_graph_attrs(), clear_global_graph_attrs(), delete_global_graph_attrs(), get_global_graph_attrs(), set_global_graph_attrs()
Added option to display different text labels on nodes via the display node attribute; this is easily set with the set_node_attr_to_display() function
Rewrote many graph functions (e.g. traversals) so that they are faster for very large graphs
A log of all graph functions that directly modify the graph is now part of the graph object (graph$graph_log)
Added functionality to automatically generate graph backups at every graph modification; this is in the form of RDS files deposited in a subdirectory (name is based on the graph ID) of the working directory; the option (write_backups, set to FALSE by default) is available in all functions that initialize a graph object (create_graph(), create_random_graph(), from_igraph(), from_adj_matrix())