【发布时间】:2013-03-17 14:02:24
【问题描述】:
我想进行一些 sna 分析。我使用 RStudio 和 igraph 包。 我的输入数据来自文本文件(从 excel 创建为制表符分隔的文本文件)。 数据文件有 3 列。第一行和第二行是网络数据(顶点),第三行是每条边的权重。我使用如下所示的机场连接数据:
1 54 28382(机场 ID 始发机场/机场 ID 目的地机场/乘客编号作为重量)
我用这些命令加载了 id:
USAN_num1 <- read.table('USAN_num.txt', header=T)
USAN_g_num1 <- graph.data.frame(USAN_num1)
> summary(USAN_g_num1)
Vertices: 626
Edges: 7078
Directed: TRUE
No graph attributes.
Vertex attributes: name.
Edge attributes: PAX.
数据如下所示:
ORIGN DESTN PAX
1 1 604 646
2 2 42 3736
3 2 118 5189
现在到发生的问题: 当我使用 igraph 检查时,我的网络包含 6 个不同的集群。即使我创建了我的网络的图形图片,它也有 6 个独立的部分。这完全没有意义,因为我的数据应该连接到一个网络。我检查了我的数据集,确实没有不同的子网络。
这是我得到的集群特征:
$csize
[1] 5 608 2 4 5 2
$no
[1] 6
一个小集群中的一个顶点甚至是一个巨大的机场,应该连接到许多其他的,而不仅仅是一个其他的......
更新: 我现在更新到最新的 igraph 版本,但它仍然无法正常工作。 我在此处以 .txt 文件的形式上传了我的数据的示例部分:USAN_numS.txt
如果有人知道我做错了什么,那就太好了。 谢谢
【问题讨论】:
-
如果您不提供可重现的示例,很难说您做错了什么。顺便提一句。您使用的是相当旧的 igraph 版本。
-
@GaborCsardi 谢谢。我用指向数据文件的链接更新了我的帖子,我还将 igraph 版本更新到了最新版本。如果你能帮助我,那就太好了。
-
igraph 是正确的,我认为混淆是 graph.data.frame 为您的顶点分配符号名称,它们与您的内部顶点 ID 不同。像这样创建您的图表:
USAN_g_num1 <- graph.data.frame(USAN_num1, vertices=data.frame(id=1:max(USAN_num1[,1:2]))),然后您的符号名称与数字 ID 匹配。我会添加一个更详细的答案,但现在没有时间。 -
@GaborCsardi 谢谢。不幸的是,它没有用。不,我有 7 个不同的集群。但是慢慢来,这不是很紧急。感谢您的帮助。
-
那你做错了。集群的数量是相同的。只有顶点的名称不同。稍后再说。