正如问题中所说。我的网络有许多平行的边,例如,一个有18个顶点和693个边。
LpOTb.dc.rd <- list()
for (x in seq_len(1000L)) {
LpOTb.dc.rd[[x]] <- erdos.renyi.game(18,
693,
type = "gnm",
loops = T)
}
我想建立一个随机网络与之比较,但我不断收到错误消息:
Error in erdos.renyi.game(18, 693, type = "gnm", loops = T) :
At games.c:703 : Invalid number (too large) of edges, Invalid value
我宁愿不简化我的网络并考虑随机边缘权重,主要是因为其中有30多个,并且我必须为我的网络重做所有指标。
答案 0 :(得分:0)
您可以使用graph_from_data_frame
生成具有18个顶点和693条边的随机图。为了匹配上面的代码,我制作了一个允许循环的无向图。
library(igraph)
Start = sample(18, 693, replace=TRUE)
End = sample(18, 693, replace=TRUE)
df = data.frame(Start, End)
g = graph_from_data_frame(df, directed=FALSE)
vcount(g)
[1] 18
ecount(g)
[1] 693
如果要生成多个这样的图形,可以模仿注释中提到的previous answer中的代码。
library(igraph)
set.seed(1)
gs <- list()
for (x in seq_len(100L)) {
Start = sample(18, 693, replace=TRUE)
End = sample(18, 693, replace=TRUE)
df = data.frame(Start, End)
gs[[x]]= graph_from_data_frame(df, directed=FALSE)
}