節點之間的距離
可以透過檢視節點之間路徑的數量與長度,來評估一個網路的互連程度。所謂路徑,就是節點之間的連結串。兩個節點之間的中介邊數量代表它們之間的測地距離。彼此相連的節點,其測地距離為 1;若兩者未直接相連,但共享一個共同鄰居,則距離為 2,以此類推。在有向網路中,邊的方向也會被納入考量。若兩個節點無法沿著有向邊互相到達,則它們的測地距離視為無限大。本練習中,你將學會如何找出網路中節點之間的最長路徑,以及如何辨識在距離某節點 \(n\) 次連結以內的節點。以麻疹資料集這類疾病傳播網路為例,這能幫助你判斷疾病在網路中擴散的速度。
本練習屬於課程
R 的 Network Analysis
練習說明
- 使用
farthest_vertices()找出網路中最長路徑的長度。 - 使用
get_diameter()辨識該路徑的節點序列。這可顯示哪些孩子把疾病在網路中傳得最遠。 - 使用
ego()找出在 2 次連結內可從節點 42 抵達的所有節點,以及在 2 次連結內可抵達節點 42 的所有節點。ego()的第 1 個參數是圖物件,第 2 個參數是節點之間允許的最大連結數,第 3 個參數是目標節點,第 4 個參數則決定要考慮從目標節點「向外」的連結,或「向內」指向目標節點的連結。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
library(igraph)
# Which two vertices are the furthest apart in the graph ?
___(g)
# Shows the path sequence between two furthest apart vertices.
___(g)
# Identify vertices that are reachable within two connections from vertex 42
___(g, ___, '42', mode = c('___'))
# Identify vertices that can reach vertex 42 within two connections
___(g, ___, '42', mode = c('___'))