Skip to contents

Execute the graph actions stored in the graph through the use of the add_graph_action() function. These actions will be invoked in order and any errors encountered will trigger a warning message and result in no change to the input graph. Normally, graph actions are automatically triggered at every transformation step but this function allows for the manual triggering of graph actions after setting them, for example.

Usage

trigger_graph_actions(graph)

Arguments

graph

A graph object of class dgr_graph.

Value

A graph object of class dgr_graph.

Examples

# Create a random graph using the
# `add_gnm_graph()` function
graph <-
  create_graph() %>%
  add_gnm_graph(
    n = 5,
    m = 10,
    set_seed = 23)

# Add a graph action that sets a node
# attr column with a function; this
# uses the `get_pagerank()` function
# to provide PageRank values in the
# `pagerank` column
graph <-
  graph %>%
  add_graph_action(
    fcn = "set_node_attr_w_fcn",
    node_attr_fcn = "get_pagerank",
    column_name = "pagerank",
    action_name = "get_pagerank")

# Add a second graph action (to be
# executed after the first one) that
# rescales values in the `pagerank`
# column between 0 and 1, and, puts
# these values in the `width` column
graph <-
  graph %>%
  add_graph_action(
    fcn = "rescale_node_attrs",
    node_attr_from = "pagerank",
    node_attr_to = "width",
    action_name = "pgrnk_to_width")

# Add a third and final graph action
# (to be executed last) that creates
# color values in the `fillcolor` column,
# based on the numeric values from the
# `width` column
graph <-
  graph %>%
  add_graph_action(
    fcn = "colorize_node_attrs",
    node_attr_from = "width",
    node_attr_to = "fillcolor",
    action_name = "pgrnk_fillcolor")

# View the graph actions for the graph
# object by using the `get_graph_actions()`
# function
graph %>% get_graph_actions()
#> # A tibble: 3 × 3
#>   action_index action_name     expression                                       
#>          <int> <chr>           <chr>                                            
#> 1            1 get_pagerank    set_node_attr_w_fcn(graph = graph, node_attr_fcn…
#> 2            2 pgrnk_to_width  rescale_node_attrs(graph = graph, node_attr_from…
#> 3            3 pgrnk_fillcolor colorize_node_attrs(graph = graph, node_attr_fro…

# Manually trigger to invocation of
# the graph actions using the
# `trigger_graph_actions()` function
graph <-
  graph %>%
  trigger_graph_actions()

# Examine the graph's internal node
# data frame (ndf) to verify that
# the `pagerank`, `width`, and
# `fillcolor` columns are present
graph %>% get_node_df()
#>   id type label pagerank width fillcolor
#> 1  1 <NA>     1   0.2877 0.935   #ABDDA4
#> 2  2 <NA>     2   0.0940 0.000   #D7191C
#> 3  3 <NA>     3   0.3012 1.000   #2B83BA
#> 4  4 <NA>     4   0.1965 0.495   #FFFFBF
#> 5  5 <NA>     5   0.1206 0.128   #FDAE61