0
我想基于给定的度分布生成R中的随机图。我正在尝试使用igraph
包中的degree.sequence.game
函数,但它并不完全符合我的要求。我必须回答以下问题:基于给定的度分布生成R中的随机有向网络
(a)必须对进入和退出程度设置什么条件才能使此功能生效?例如:
ex <-
degree.sequence.game(out.deg = c(4,2,17,26,19,17,17,24, 31,32,34,44,40),
in.deg = c(4,7,13, 13,23,25,26,22,21,38,38,36, 42),
method = c("simple"))
这个工作,但我不希望在我的图形循环,所以我试图设置`方法= C(“simple.multiple”),但这将返回错误:
Error in .Call("R_igraph_degree_sequence_game", as.numeric(out.deg), in.deg, :
At games.c:1072 : No simple directed graph can realize the given degree sequence, Invalid value
我不太知道如何解决这个问题?
(b)反正是有生成序图,可以保留链接的顺序(我知道,网络是为了成为一个聚合的对象)我真正想做的是(以上图为例):
> ex
IGRAPH D--- 13 308 -- Degree sequence random graph
+ attr: name (g/c), method (g/c)
+ edges:
[1] 3->13 8-> 7 5-> 6 4-> 4 13-> 2 10-> 3 12-> 6 7->12 4-> 6 4->12 11-> 5 7-> 8 10->13 8->10 11-> 5 12-> 6 7-> 6 13-> 9 10->13 3->13 13->13
[22] 13->10 8-> 4 10->12 7->10 9->13 9-> 2 10-> 9 9->13 9-> 5 9->10 10-> 8 12-> 6 10-> 7 11->12 5->13 4-> 5 9->13 12->10 5-> 2 3->11 11->10
[43] 12-> 6 6->12 12-> 6 13-> 8 6-> 4 11-> 5 13-> 6 13->13 5->13 13-> 8 10->11 12->11 8->11 8-> 5 7-> 8 12-> 3 1->12 5-> 7 8->11 9-> 4 10->10
[64] 12->10 12->10 13->10 9->13 9-> 7 10-> 8 12-> 8 9-> 8 13->12 10-> 5 8-> 5 9-> 4 7->10 4-> 7 7->12 7-> 7 4->12 12->10 13->12 10-> 3 13->11
[85] 6->10 10->10 9-> 4 5->13 2-> 7 4->13 4->11 10-> 5 8-> 4 12-> 3 11->10 13->10 9->13 9->11 9-> 3 3-> 9 12-> 7 10-> 4 13-> 8 5->10 8-> 9
[106] 11-> 4 10-> 3 11-> 4 9->11 4-> 3 12-> 9 6-> 5 10-> 9 11-> 9 8->12 12-> 3 6-> 1 10-> 9 12-> 8 4->13 8-> 9 10-> 8 5->11 13-> 3 5-> 7 11->12
[127] 13-> 7 10-> 7 9-> 6 4-> 7 8-> 8 8->11 11->11 7-> 3 12->11 8->12 6->11 11->11 12->11 13-> 9 13-> 7 12-> 6 6-> 9 9->12 12->13 3-> 2 8->12
[148] 8-> 9 9-> 8 9->12 10->10 12-> 9 5->10 3->13 8->10 11-> 8 13-> 5 13->12 11->10 8->10 3->11 6->11 10->11 12->13 12->11 12-> 8 3->13 7-> 7
+ ... omitted several edges
我想介绍一些结构这一点,使得如果链路1-> 3其次3-> 4,我想知道某种方式
你是说,当进出度总和为同一个号码,'方法=“simple.no.multiple”的选项'是否行得通呢?实际上,我仍然得到同样的错误... ...实际上,如果我保留'方法='简单''我仍然得到自我循环后程度总和=出程度总和 – dimebucker91
嗯......这很奇怪,方法=“简单”应该可以工作,如果你减少1的度数。在我的原始答案中,我把你的出和度数加起来。在你的例子中它是= 307和= 308。这是问题吗?如果不是,你使用的是什么版本的igraph?我相信“simple.no.multiple”不适用于这个例子,因为你的许多度数都大于节点数量。 –