我正在尝试用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
答案 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。