计算R中的度,接近度和中间性

Tas*_*ash 2 r social-networking igraph sna

我有一个数据表,其中包含在论坛中的同一个帖子中发布的用户名,它看起来像:X1 X2 1. g79 kian 2. g79 greyracer 3. g79 oldskoo1 ...

我需要计算程度,亲密度和介于两者之间.我正在使用以下代码:

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=";")
Run Code Online (Sandbox Code Playgroud)

问题是为什么我得到的学位,学位和学位的价值相同,亲密度相同?此外,一开始我有41213个用户,但经过分析(当我计算学位等等)时,我只有37874.我怎么能失去这么多观察?如果我在代码中有错误,请告诉我.

谢谢

小智 6

你获得相同的学位,学位和总学位的原因是因为你正在创建一个无向网络graph.data.frame(el, directed=FALSE).在无向网络中,从节点到节点的链路数量相同,并且它们都等于全局度.

如果您需要定向网络,则需要执行此操作graph.data.frame(el, directed=TRUE).它将创建一个定向网络,其中数据帧第一列中的id是发送tie的节点的id,第二列中的id表示接收该tie的节点.

至于丢失节点,我的猜测是你有一些人从不与任何人互动,因此当你将双模网络转换为单模式时会丢失(我假设你这样做但是没有告诉我们你是怎么做的这是因为你的线路:load("edgelist_one_mode.rda"))

如果没有可重复的示例,我认为这是我可以从您的代码中推断出来的.