R's包中的二分图

时间:2011-04-07 18:21:35

标签: r igraph

我正在尝试用R的igraph包创建一个二分图,但是有一段时间的魔鬼。

任何人都可以告诉我为什么会这样:

g <- graph.bipartite( rep(0:1,length=10), c(0,1,2,3,4,5,6,7,8,9))

但这给了我一个错误:

g <- graph.bipartite( rep(0:1,length=10), c(10,11,12,13,14,15,16,17,18,19))
Error in graph.bipartite(rep(0:1, length = 10), c(10, 11, 12, 13, 14,  : 
  At bipartite.c:438 : Invalid (negative) vertex id, Invalid vertex id

2 个答案:

答案 0 :(得分:1)

您的graph.bipartite( rep(0:1, length=10), ...)告诉graph.bipartite图表中有十个顶点,并将它们视为0,1,2,... 9。

你可以写

graph.bipartite( c(0,0,1,0), c(0,2,1,2,2,3))

有四个顶点0,1,2和3(一部分为2,另一部分为0,1和3)但不是

graph.bipartite( c(0,0,1,0), c(0,2,1,2,2,4))

因为没有顶点4,也没有

graph.bipartite( c(0,0,1,0), c(0,2,1,2,1,3))

因为尝试的边(1,3)连接了同一部分中的两个顶点。

答案 1 :(得分:1)

graph.bipartite的第一个参数隐式指定顶点数。在这两种情况下,图表中都有10个顶点。但是,由于顶点在igraph中具有从零开始的连续数字ID,因此不能使用10,11等作为顶点ID。