Репликация графа Эрдоша-Рени
Я действительно плохо знаком с 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))