R

如何使用 R 計算 400 萬邊緣網絡中的中心性度量?

  • February 15, 2011

我有一個 CSV 文件,其中包含 400 萬條有向網絡的邊,代表人們相互通信(例如,約翰向瑪麗發送消息,瑪麗向安發送消息,約翰向瑪麗發送一條消息等)。我想做兩件事:

  1. 找到每個人的度數、介數和(可能)特徵向量中心度度量。
  2. 獲得網絡的可視化。

我想在 Linux 服務器的命令行上執行此操作,因為我的筆記本電腦沒有太多電量。我在該服務器和 statnet 庫上安裝了 R。我發現這個 2009 年的帖子有人比我更有能力嘗試做同樣的事情並遇到問題。所以我想知道是否有人對如何執行此操作有任何指示,最好是一步一步地指導我,因為我只知道如何加載 CSV 文件而沒有別的。

只是給你一個想法,這就是我的 CSV 文件的樣子:

$ head comments.csv
   "src","dest"
   "6493","139"
   "406705","369798"
$ wc -l comments.csv 
4210369 comments.csv

您擁有的是一個邊緣列表,可以使用網絡庫將其轉換為網絡對象。這是一個使用虛構數據的示例。

library(network)

src <- c("A", "B", "C", "D", "E", "B", "A", "F")
dst <- c("B", "E", "A", "B", "B", "A", "F", "A")

edges <- cbind(src, dst)
Net <- as.network(edges, matrix.type = "edgelist")

summary(Net)
plot(Net)

但是,需要警告:您有一個非常大的網絡,我不確定情節是否會提供所有信息。它可能看起來像一個大紗線球。我也不確定這些庫如何處理如此大的數據集。我建議您查看 network、statnet 和 ergm 庫的文檔。Journal of Statistical Software (v24/3) 提供了幾篇涵蓋這些庫的文章。問題可以在這裡找到:

http://www.jstatsoft.org/v24

引用自:https://stats.stackexchange.com/questions/7270

comments powered by Disqus