2014-01-12 51 views
1

我正在使用igraph R軟件包執行SNA,並需要將節點的某些網絡屬性以及每個節點的ID保存到文件中以供進一步分析。也就是說,第一列代表節點ID,其他列代表其屬性的文檔。 我確定與中心地位的措施,但其他的igraph功能,如及物例如,僅返回與計算網絡特徵矢量作爲使用igraph打印R節點的網絡屬性

transitivity(graph,type=c("local")) 

[1] 0.4285714 0.3976608 0.5454545 0.7142857 0.3928571 0.4640523 
[7] 0.5620915 0.6095238 0.3571429 0.4743590 0.3416667 0.6023392 
[13] 0.6000000 0.5228758 0.4771242 0.4835165 0.3246753 0.5000000 
[19] 0.3636364 0.5777778 0.3571429 0.4487179 0.5238095 0.4857143 

我想什麼做的是能夠傳遞添加到下面的中心性措施的數據幀:

metrics <- data.frame(
    deg=degree(graph) 
    bet=betweenness(graph) 
    clo=closeness(graph) 
    eig=evcent(graph)$vector 
) 

返回:

deg  bet  clos  eig 
001 7 8.6046215 0.009523810 0.1697311 
002 19 48.2885279 0.012500000 0.7012156 
003 12 10.5285962 0.011111111 0.4280625 
004 15 8.6161170 0.011363636 0.7729130 

我感謝所有幫助。謝謝!

+1

我想問如何將一個向量添加到data.frame?使用'cbind' – agstudy

+0

那麼,我不知道如何正確地說出我的問題,Scott的解決方案似乎工作得很好。我想我可以使用cbind,但是也許node id命令不會被保留下來?無論如何,感謝您的評論@agstudy,這讓我想到了解決類似問題的可能解決方案。 – Milo

回答

1

只需將功能添加到您的data.frame

metrics <- data.frame(
    deg=degree(graph), 
    bet=betweenness(graph), 
    clo=closeness(graph), 
    eig=evcent(graph)$vector, 
    tra=transitivity(graph,type=c("local")) 
) 
+1

乾杯斯科特。那麼,如果我理解的很好,所有應用於圖形的函數的所有節點ID都保持相同的順序? – Milo

+0

大概是的,特別是因爲函數不返回每個度量屬於哪個節點 –

0

您可以將數據幀添加V(圖)$名稱來獲得與措施的相關編號。

metrics <- data.frame(
    id = V(graph)$name 
    deg=degree(graph), 
    bet=betweenness(graph), 
    clo=closeness(graph), 
    eig=evcent(graph)$vector, 
    tra=transitivity(graph,type=c("local")) 
)