set_node_attr_w_fcn {DiagrammeR} | R Documentation

## 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

    # 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()

[Package DiagrammeR version 1.0.1 Index]