我最近開始使用R「igraph」軟件包(版本0.7)。我寫了一個簡單的程序來理解包的基本知識(將數據讀入圖對象,獲得節點的鄰居)。我正在使用一個圖表,其頂點從0開始。圖中的邊緣會根據需要填充,但是當我嘗試獲取節點的鄰接列表/鄰居時,我發現它並沒有給出我期望的結果。有人可以幫我解決這個問題嗎?或者指出如果我錯過了一些微不足道的東西?問題與R「igraph」包近鄰函數
下面是圖形數據/代碼,我寫道:
格拉夫邊緣數據(第一列包含第一頂點,第二列包含於其中存在從所述第一頂點的邊緣的頂點)
0 5
1 5
2 5
3 5
0 2
> library('igraph')
> graph_file_ori = read.table("test.txt")
> graph_obj = graph.data.frame(graph_file_ori,directed=FALSE)
> str(graph_obj)
IGRAPH UN-- 5 5 --
+ attr: name (v/c)
+ edges (vertex names):
[1] 0--5 1--5 2--5 3--5 0--2
> neighbors(graph_obj,0)
Error in .Call("R_igraph_neighbors", graph, as.igraph.vs(graph, v) - 1, :
At type_indexededgelist.c:750 : cannot get neighbors, Invalid vertex id
> neighbors(graph_obj,1)
[1] 3 5
> neighbors(graph_obj,2)
[1] 5
> neighbors(graph_obj,3)
[1] 1 5
> neighbors(graph_obj,4)
[1] 5
> neighbors(graph_obj,5)
[1] 1 2 3 4
基於該曲線圖中,所期望的輸出是:
neighbors(0) = 5,2
neighbors(1) = 5
neighbors(2) = 5,0
neighbors(3) = 5
的4度爲0 欣賞的幫助。
感謝您的回覆!我試圖讓頂點名稱爲「0」的鄰居。然而,執行這個我得到的輸出爲3 5,當我預期它是2,5或(3,6假設頂點id的開始於1)。根據我的理解是因爲我沒有在圖中定義名稱爲4的頂點。有什麼辦法可以解決這個問題嗎?有什麼辦法可以使用頂點ID而不是頂點名稱? – hemanths 2014-11-15 04:22:50
請參閱我對此的編輯。 – 2014-11-15 05:08:33