開始使用免費開始

節點之間的距離

可以透過檢視節點之間路徑的數量與長度,來評估一個網路的互連程度。所謂路徑,就是節點之間的連結串。兩個節點之間的中介邊數量代表它們之間的測地距離。彼此相連的節點,其測地距離為 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('___'))
編輯並執行程式碼