Вы смотрели на пакет эргм ? Используя модель экспоненциального случайного графа, вы можете моделировать ассортативную сеть с nodematch
членом. См. ?"ergm-terms"
для описания термина.
library(ergm)
test.net = as.network(matrix(0,10,10), directed = F) #10-node network
test.net%v%"class" = sample(c('1','2'), 10, replace = T) #nodal attribute
simulate
(или simulate.formula
) сеть с термином, который управляет плотностью (edges
), и сеть, которая управляет гомофилией (nodematch
) в узловом атрибуте:
test.sim = simulate(test.net ~ edges + nodematch("class"), coef = c(-1, 4))
plot(test.sim, vertex.col = as.numeric(test.net%v%"class"), vertex.cex = 2)
Вы можете переместить сеть обратно в igraph с помощью asIgraph
из пакета intergraph .