Set node attribute values with a graph function
Source:R/set_node_attr_w_fcn.R
set_node_attr_w_fcn.Rd
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.
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_closeness()
,get_cmty_edge_btwns()
,get_cmty_fast_greedy()
,get_cmty_l_eigenvec()
,get_cmty_louvain()
,get_cmty_walktrap()
,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()
, andget_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.
See also
Other node creation and removal:
add_n_node_clones()
,
add_n_nodes()
,
add_n_nodes_ws()
,
add_node()
,
add_node_clones_ws()
,
add_node_df()
,
add_nodes_from_df_cols()
,
add_nodes_from_table()
,
colorize_node_attrs()
,
copy_node_attrs()
,
create_node_df()
,
delete_node()
,
delete_nodes_ws()
,
drop_node_attrs()
,
join_node_attrs()
,
layout_nodes_w_string()
,
mutate_node_attrs()
,
mutate_node_attrs_ws()
,
node_data()
,
recode_node_attrs()
,
rename_node_attrs()
,
rescale_node_attrs()
,
set_node_attr_to_display()
,
set_node_attrs()
,
set_node_attrs_ws()
,
set_node_position()
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()
#> id type label value betweenness__A
#> 1 1 <NA> 1 4.4 9.333333
#> 2 2 <NA> 2 4.6 29.000000
#> 3 3 <NA> 3 5.9 19.166667
#> 4 4 <NA> 4 6.5 2.666667
#> 5 5 <NA> 5 4.1 0.500000
#> 6 6 <NA> 6 3.6 18.000000
#> 7 7 <NA> 7 5.4 12.000000
#> 8 8 <NA> 8 5.8 0.000000
#> 9 9 <NA> 9 4.7 10.333333
#> 10 10 <NA> 10 5.7 0.000000
# 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()
#> id type label value alpha_centrality__A
#> 1 1 <NA> 1 4.4 0.0621118
#> 2 2 <NA> 2 4.6 -0.5341615
#> 3 3 <NA> 3 5.9 -0.8157350
#> 4 4 <NA> 4 6.5 -0.6997930
#> 5 5 <NA> 5 4.1 1.0641822
#> 6 6 <NA> 6 3.6 -0.8737060
#> 7 7 <NA> 7 5.4 -0.6832298
#> 8 8 <NA> 8 5.8 0.9316770
#> 9 9 <NA> 9 4.7 -0.4679089
#> 10 10 <NA> 10 5.7 0.3685300
# 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()
#> id type label value pagerank
#> 1 1 <NA> 1 4.4 0.1416
#> 2 2 <NA> 2 4.6 0.1401
#> 3 3 <NA> 3 5.9 0.1262
#> 4 4 <NA> 4 6.5 0.0637
#> 5 5 <NA> 5 4.1 0.0478
#> 6 6 <NA> 6 3.6 0.1976
#> 7 7 <NA> 7 5.4 0.1318
#> 8 8 <NA> 8 5.8 0.0422
#> 9 9 <NA> 9 4.7 0.0693
#> 10 10 <NA> 10 5.7 0.0398
# 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()
#> id type label value pagerank
#> 1 1 <NA> 1 4.4 0.1349
#> 2 2 <NA> 2 4.6 0.1352
#> 3 3 <NA> 3 5.9 0.1585
#> 4 4 <NA> 4 6.5 0.0670
#> 5 5 <NA> 5 4.1 0.0461
#> 6 6 <NA> 6 3.6 0.1300
#> 7 7 <NA> 7 5.4 0.1014
#> 8 8 <NA> 8 5.8 0.0400
#> 9 9 <NA> 9 4.7 0.0685
#> 10 10 <NA> 10 5.7 0.0440
#> 11 11 <NA> <NA> NA 0.0744