。
我在 r 中有这段代码:
X=10;d=c()
for(x in 1:X){
ga=erdos.renyi.game(100,0.04,directed = FALSE,loops = FALSE)
if(!(is.connected(ga))){next}
d[x]=diameter(ga)
}
该代码的目的是从鄂尔多斯模型生成 10 个随机连接图,然后计算每个图的直径。现在,鄂尔多斯模型(有时(为小概率p (e.g. p=0.04)
生成断开连接的图。我尝试通过 if 条件忽略断开连接的图形,但我需要用新生成的连接图形替换断开连接的图形。我的意思是,我希望代码重现更多的图形,直到达到 10 个随机连接的图形。
此代码的一个输出是
d
[1] NA 8 7 NA NA NA 7 7 NA 8
由于图形断开连接而导致的 NA
将for
循环更改为while
循环应该可以完成这项工作。
library(igraph)
X=10
d=c()
x = 0
while(x<X) {
ga=erdos.renyi.game(100,0.04,directed = FALSE,loops = FALSE)
if(!(is.connected(ga))){ next}
x = x+1
d[x]=diameter(ga)
}