2013-11-27 44 views
1

我正在使用函數「刪除頂點」,並在我的網絡上發現了一個奇怪的行爲。 在閱讀igraph的文檔後,我發現:刪除頂點,同時保留節點ID

「delete.vertices從圖中刪除指定的頂點及其相鄰邊,頂點的ID不保留。

是否有任何解決方法來保留原始網絡的ID?

回答

2

是的,給圖分配一個頂點屬性,可能name屬性是最好的。這些在刪除後保留。

g <- graph.ring(10) 
V(g)$name <- letters[1:10] 
g2 <- delete.vertices(g, c("a", "b", "f")) 
str(g2) 
# IGRAPH UN-- 7 5 -- Ring graph 
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/c) 
# + edges (vertex names): 
# [1] c--d d--e g--h h--i i--j 

如果你想保留原來的數字頂點的ID,然後將它們分配爲名稱:

gg <- graph.ring(10) 
V(gg)$name <- V(gg) 
gg2 <- delete.vertices(gg, c(1,2,6)) 
str(gg2) 
# IGRAPH UN-- 7 5 -- Ring graph 
# + attr: name (g/c), mutual (g/l), circular (g/l), name (v/n) 
# + edges (vertex names): 
# [1] 3-- 4 4-- 5 7-- 8 8-- 9 9--10 
+0

謝謝您的回答。 我原來的圖是一個邊列表與形式: 1,2 2,10 1.15 .... 我想繼續提供該名單即數字:1,10,2, 15 不是新的命名或新的編號 –

+0

然後將這些編號指定爲'name'屬性中的頂點名稱。 –

+0

是否可以將原始節點編號指定爲該節點的名稱。我關心圖表的原始ID。 IOW,如果我有一個邊緣「1 - > 2」,那麼節點「1」應該有一個名字「1」,節點「2」應該有一個名字「2」 –