我有從幾個樹狀結構的圖像中提取的圖形。該圖對於每個關節點都有一個頂點,即使該點不是分支或結束點(即節點順序爲2)。我想刪除這些2階頂點,但保持連通性,以便通過這些中間體連接的分支點或結束頂點現在通過單個邊連接。我可以通過一次一個地去除頂點和連接邊來對小圖進行此操作,但在使用10,000個邊時這很慢。在R的igraph中:如何在保持連通性的同時去除非分支點頂點?
這是一個示例啓動圖。我想頂點8和6除去(例如),而插入連接9和4類似地邊緣,我想,同時插入的邊緣以去除頂點5 7 4 之間和
edge_matrix = cbind(
c(1,2,3,4,4,5,6,8,9,9,10,11),
c(2,3,4,5,6,7,8,9,10,11,12,13))
example_graph = graph.data.frame(edge_matrix, directed=F)
structure(list(13, FALSE, c(1, 2, 3, 4, 5, 10, 6, 7, 8, 9, 11,
12), c(0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9), c(0, 1, 2, 3, 4,
6, 7, 8, 9, 5, 10, 11), c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
), c(0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), c(0, 1, 2,
3, 5, 6, 7, 8, 10, 11, 12, 12, 12, 12), list(c(1, 0, 1), structure(list(), .Names = character(0)),
structure(list(name = c("1", "2", "3", "4", "5", "6", "8",
"9", "10", "11", "7", "12", "13")), .Names = "name"), list()),
<environment>), class = "igraph")
哇,太好了!它在合理的時間內處理大型圖表。對於將來使用它的人:這種方法不會捕獲與頂點1相鄰的度數爲2的節點。 – Alizaybak