2017-05-17 52 views
1

我對igraph(R)有非常基本的問題:重命名節點ID。igraph R頂點ids變更

例如,我有以下圖形的邊界列表。

10,12 
10,14 
12,14 
12,15 
14,15 
12,17 
17,34 
17,100 
100,34 

我想計算每個節點的局部聚類係數。首先,我使用readcsv閱讀了對象g中的邊界列表。然後,我使用以下命令爲每個節點轉儲本地CC。

write.csv(transitivity(g,type="local"),file="DumpLocalCC.csv") 

現在的問題是,改變的igraph節點ID從1開始,我得到以下輸出

"","x" 
"1",NA 
"2",0.333333333333333 
"3",0.333333333333333 
"4",0.333333333333333 
"5",1 
"6",1 
"7",1 

現在我怎麼能百忍哪個節點ID是什麼?也就是說,如果輸出文件中的7指向100或34? 無論如何,我們可以強制igraph轉儲像10,34,100等實際節點和它們各自的本地CC?

我是谷歌搜索,發現人們建議「V(g)$ name < - as.character(V(g))」來保存nodeids。然而,我嘗試過,我認爲我沒有正確使用它。 此外,由於數據量很大,我不想手動更改節點ID以使它們從1 ...開始連續。

P.s:Here我注意到一個類似的問題已經被問到。有人建議「將這些數字分配爲頂點名稱」。 如何做到這一點? 有人可以舉例說明嗎?

另一個類似的問題,如this(我瞭解它的類似問題),其中有人建議打開一個問題。我不確定這是否已經解決?

在此先感謝。

+0

它會更容易幫助你,如果你提供了正確的[重複的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible例如)用代碼我們可以複製/粘貼到R中進行測試。準確顯示如何創建圖形對象。 – MrFlick

+0

已提供邊緣列表。我使用以下代碼來讀取它 DF < - read.csv(「EDGELIST.csv的路徑」) g < - graph.DF(advice_data_frame)和以上我提供瞭如何計算聚類係數(傳遞性)和將其傾倒在文件中 – raj

回答

3

您只需在編寫表時將統計信息與節點名稱結合使用。例如

DF <- read.csv(text="10,12 
    10,14 
    12,14 
    12,15 
    14,15 
    12,17 
    17,34 
    17,100 
    100,34", header=FALSE) 
g <- graph.data.frame(DF) 
outdata <- data.frame(node=names(V(g)), trans=transitivity(g, type="local")) 
write.csv(outdata, file="DumpLocalCC.csv") 
+0

謝謝!這解決了這個問題。 – raj