有没有一种方法可以生成具有属性的随机网络?

时间:2020-08-12 17:40:59

标签: r tidygraph

因此,我想针对随机网络评估同构。这意味着我需要使用我感兴趣的属性创建一个随机网络。获取随机网络非常容易,但是我无法添加属性,因为随机网络没有我可以加入的任何东西... < / p>

gr = play_erdos_renyi(6, 0.3)

Attr = sample.int(3, 6, replace = TRUE

gr <- gr %>%
 activate(nodes) %>%
 join(Attr)

我认为我可以首先生成随机网络,然后将其吐到边缘列表中,然后将属性添加到边缘列表中,然后使用graph_from_data_frame来获取网络,但是感觉应该有一些更简单的方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以简单地 mutate 并将属性分配给您的新图表。

library(tidygraph)

set.seed(2021)

gr <- play_erdos_renyi(6, 0.3)

Attr <- sample.int(3, 6, replace = TRUE)

gr <- gr %>%
 activate(nodes) %>%
 mutate(attr = Attr)

gr
# # A tbl_graph: 6 nodes and 9 edges
# #
# # A directed simple graph with 1 component
# #
# # Node Data: 6 x 1 (active)
#    attr
#   <int>
# 1     2
# 2     2
# 3     1
# 4     2
# 5     3
# 6     2
# #
# # Edge Data: 9 x 2
#    from    to
#   <int> <int>
# 1     3     1
# 2     5     1
# 3     6     1
# # … with 6 more rows