如何忽略不正确的样本并将其替换为 R 中的新样本



我在 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)
}

最新更新