DiagrammeR (version 1.0.0)

set_node_attr_w_fcn: Set node attribute values with a graph function

Description

From a graph object of class dgr_graph or a node data frame, set node attribute properties for all nodes in the graph using one of several whole-graph functions.

Usage

set_node_attr_w_fcn(graph, node_attr_fcn, ..., column_name = NULL)

Arguments

graph

a graph object of class dgr_graph.

node_attr_fcn

the name of the function to use for creating a column of node attribute values. Valid functions are: get_alpha_centrality, get_authority_centrality, get_betweenness, get_bridging, get_closeness, get_cmty_edge_btwns, get_cmty_fast_greedy, get_cmty_l_eigenvec, get_cmty_louvain, get_cmty_walktrap, get_constraint, get_degree_distribution, get_degree_histogram, get_degree_in, get_degree_out, get_degree_total, get_eccentricity, get_eigen_centrality, get_pagerank, get_s_connected_cmpts, and get_w_connected_cmpts.

...

arguments and values to pass to the named function in node_attr_fcn, if necessary.

column_name

an option to supply a column name for the new node attribute column. If NULL then the column name supplied by the function will used along with a __A suffix.

Value

either a graph object of class dgr_graph.

Examples

Run this code
# NOT RUN {
# Create a random graph using the
# `add_gnm_graph()` function
graph <-
  create_graph() %>%
  add_gnm_graph(
    n = 10,
    m = 22,
    set_seed = 23) %>%
  set_node_attrs(
    node_attr = value,
    values = rnorm(
      n = count_nodes(.),
      mean = 5,
      sd = 1) %>% round(1))

# Get the betweenness values for
# each of the graph's nodes as a
# node attribute
graph_1 <-
  graph %>%
  set_node_attr_w_fcn(
    node_attr_fcn = "get_betweenness")

# Inspect the graph's internal
# node data frame
graph_1 %>%
  get_node_df()

# If a specified function takes argument
# values, these can be supplied as well
graph_2 <-
  graph %>%
  set_node_attr_w_fcn(
    node_attr_fcn = "get_alpha_centrality",
    alpha = 2,
    exo = 2)

# Inspect the graph's internal
# node data frame
graph_2 %>%
  get_node_df()

# The new column name can be provided
graph_3 <-
  graph %>%
  set_node_attr_w_fcn(
    node_attr_fcn = "get_pagerank",
    column_name = "pagerank")

# Inspect the graph's internal
# node data frame
graph_3 %>%
  get_node_df()

# If `graph_3` is modified by
# adding a new node then the column
# `pagerank` will have stale data; we
# can run the function again and re-use
# the existing column name to provide
# updated values
graph_3 <-
  graph_3 %>%
  add_node(
    from = 1,
    to = 3) %>%
  set_node_attr_w_fcn(
    node_attr_fcn = "get_pagerank",
    column_name = "pagerank")

# Inspect the graph's internal
# node data frame
graph_3 %>%
  get_node_df()
# }

Run the code above in your browser using DataLab