在r中生成随机图

时间:2013-01-03 14:29:37

标签: r graph

我想使用任何软件包在R中生成一个grandom图。

所需的输出是两列矩阵,第一列列出代理,第二列是以下形式的连接:

1 3
1 4
1 6
1 7
2 2
2 5
3 9
3 11
3 32
3 43
3 2
4 5

我希望能够指定平均度数以及最小和最大联系人数。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:8)

由于您没有指定除图表以外的任何其他内容,我们可以非常简单地执行此操作:

actor     <- sample(1:4, 10, replace=TRUE)
receiver  <- sample(3:43, 10, replace=TRUE)
graph     <- cbind(actor,receiver)

如果您想要更具体的内容,请查看igraph例如

library(igraph)
graph <- erdos.renyi.game(21, 0.3, type=c("gnp", "gnm"),
              directed = FALSE, loops = FALSE)

# here the 0.3 is the probability of ties and 21 is the number of nodes
# this is a one mode network

或使用专门针对两种模式网络的包bipartite

library(bipartite)
web <- genweb(N1 = 5, N2 = 10, dens = 2)
web2edges(web,return=TRUE)

# here N1 is the number of nodes in set 1 and N2 the number of nodes in set 2
# and dens the average number of ties per node

有许多事情需要考虑,例如,如果你想限制学位分布,代理人之间关系的可能性等。