2013-06-05 51 views
2

我有其中包括誰張貼在一個論壇同一個線程的用戶名的數據表,它看起來就像是: X1 X2 1. G79 KIAN 2. G79 greyracer 3. g79 oldskoo1 ...計算的程度,封閉性和中介R中

我需要計算度,親密度和介間度。我使用下面的代碼:

library(igraph) 
setwd("/Volumes/NATASHKA/api/R files") 
load("edgelist_one_mode.rda") 
load("map.rda") 
load ("result.rda") 
el <- as.matrix(whatwewant) 
el[,1] <- as.character(el[,1]) 
el[,2] <- as.character(el[,2]) 
g <- graph.data.frame(el, directed=FALSE) 
plot(g, edge.arrow.size=.5) 
indegreeG <- degree(g, mode="in") 
outdegreeG <- degree(g, mode="out") 
totaldegreeG <- degree(g) 
inclosenessG <- closeness(g, mode='in') 
outclosenessG <- closeness(g, mode='out') 
totalclosenessG <- closeness(g) 
betweennessG <- betweenness(g) 
forumG <- data.frame(V(g)$name, indegreeG, outdegreeG, totaldegreeG, inclosenessG, outclosenessG, totalclosenessG, betweennessG) 
write.table(forumG,file="forumG.csv",sep=";") 

的問題是,爲什麼會出現相同的值入度,出度和總度,同樣的親密?此外,一開始我有41213個用戶,但經過分析(當我計算學位等時),我只有37874個用戶。我怎麼會失去如此多的觀察結果?請告訴我,如果我在代碼中有錯誤。

感謝

+0

使用'dput'包含一些示例數據。並告訴我們你使用的是什麼軟件包。 – Thomas

+0

很難幫助你沒有[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。對於你的第一個問題,例如,如果你有一個戒指結構,你的貓會得到相同數量的進,出和所有度數。即'g < - - graph.ring(10)'。 – agstudy

+0

@Thomas它是'igraph'包。我編輯OP來添加它。 – agstudy

回答

6

你爲度,出度和總額度的值相同的原因是因爲您要建立與graph.data.frame(el, directed=FALSE)無向網絡。 在無向網絡中,從一個節點到一個節點的鏈接數量是相同的,它們都等於全局度數。

如果你想要一個定向網絡,你需要做graph.data.frame(el, directed=TRUE)。 它將創建一個有向網絡,其中數據框第一列中的id是發送tie的節點的id,第二列中的id表示接收該tie的節點。

至於鬆動節點,我的猜測是你有一些人從不與任何人交往,因此當你將雙模網絡轉換爲單模時會丟失(我假設你這樣做但不顯示我們如何做到這一點,因爲你的線:load("edgelist_one_mode.rda")

缺少一個可重複的例子,我認爲這是我可以從你的代碼推演出來的。