Репликация графа Эрдоша-Рени

Я действительно плохо знаком с R, и у меня есть задание для моих классов. Мне нужно создать 1000 сетей модели Erdos-Renyi. Дело в том, что на самом деле я могу создать одну модель, проверить ее параметры, такие как распределение степеней, построить график и т. Д. Также я могу проверить ее транзитивность и так далее. Однако я должен сравнить средний коэффициент кластеризации (локальная транзитивность) этих 1000 сетей с какой-то сетью, над которой мы работали над классами в Cytoscape. Это код, который я уже знаю:

library(igraph) 
g<-erdos.renyi.game(1000,2000, type=c("gnm"))
transitivity(g) #and other atrributes...
g2<-replicate(g,1000)
transitivity(g2[[1]])
#now I have sort of list with every graph but when I try to analyze 
#I got the communicate that it is not a graph object

Я должен рассчитать стандартное отклонение и среднее значение ACC для этих 1000 сетей, а затем сравнить его. Я буду признателен за любую помощь.

Я много пробовал на самом деле:

g<-erdos.renyi.game(1026,2222,type=c("gnm"))
g2<-1000*g
transitivity(g2[2]) # this however ends in "not a graph object"error
g2[1] #outputs the adjacency matrix but instead of 1026 vertices,
#I've got 1026000 vertices, so multiplication doesn't replicate function
#but parameters 

Также я попытался унифицировать список графиков.

glist<-1000*g
acc<-union(glist, byname="auto")
transitivity(acc) #outputs the same value as first function g (only one 
#erdos-renyi graph

1 ответ

Чтобы умножить много графиков, используйте функцию репликации ниже

g<-erdos.renyi.game(100, 20, type=c("gnm"))
g2<-replicate(1000, erdos.renyi.game(100, 20, type=c("gnm")), simplify=FALSE); 
sapply(g2, transitivity)

Для вычисления среднего некоторого атрибута, такого как средняя степень или транзитивность, используйте:

mean(sapply(g2, transitivity))
Другие вопросы по тегам