2013-03-27 43 views
0

我想运行一些sna分析。我使用RStudio和igraph Package。 我的输入数据来自一个文本文件(由excel创建为一个制表符分隔的文本文件)。 数据文件有3列。第一行和第二行是网络数据(顶点),第三行是每个边的权重。我用看起来像这样机场连接的数据:igraph不显示我导入的正确网络

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 

我们所发生的问题: 我的6个不同的集群网络consints Wh是我用igraph检查它。即使当我创建我的网络图形图片时,它也有6个分离的部分。这完全没有意义,因为我的数据应该连接到一个网络。我检查了我的数据集,并且确实没有不同的子网络。

这里是集群的特点,我得到:在一小簇

$csize 
[1] 5 608 2 4 5 2 

$no 
[1] 6 

一个顶点,甚至应该被连接到许多人,而不仅仅是1以外的庞大机场...

UPDATE : 我现在更新到最新的igraph版本,但它仍然无法正常工作。 我上传了我的数据的一个模范部分作为一个.txt文件在这里:USAN_numS.txt

如果有人对我做错了什么有一个想法会很好。 谢谢

+1

如果你没有提供可重复的例子,要说出你做错了什么是很难的。顺便说一句。你正在使用一个相当古老的igraph版本。 – 2013-03-27 13:37:56

+0

@GaborCsardi谢谢。我更新了我的文章链接到数据文件,我也更新了我的igraph版本到最新的一个。如果你能帮助我,那会很棒。 – SWR 2013-03-27 14:26:56

+0

igraph是正确的,我认为混乱是graph.data.frame为您的顶点分配符号名称,它们与您的内部顶点ID不同。像这样创建你的图表:'USAN_g_num1 < - graph.data.frame(USAN_num1,vertices = data.frame(id = 1:max(USAN_num1 [,1:2])))'然后你符号名称与数字ID匹配。我会添加更详细的答案,但现在没有时间。 – 2013-03-27 14:42:01

回答

1

所以,正如我在上面所说的,在我的评论中,一个可能的混淆之处是你的图形具有象征性的顶点名称,它们实际上是数字并且与igraph的顶点ID不匹配。解决方法是删除顶点名称,或者在创建图形时明确指定它们,以便它们匹配igraph顶点ID。

但你的图真的有多个组件,请看下面的代码,在那里我在原来的表检查,这两个顶点仅在表中恰好出现一次,而他们自己形成的两个组成部分。

也许网络真有多个组件,或者有该文件中的错误。

library(igraph) 
USAN_num1 <- read.table('USAN_numS.txt', header=T) 
USAN_g_num1 <- graph.data.frame(USAN_num1, 
        vertices=data.frame(id=1:max(USAN_num1[,1:2])))  
clu <- clusters(USAN_g_num1) 
clu$csize 
## [1] 5 607 2 4 5 1 2 1 
## The '1's appear because we counted the vertices that are 
## not in the table 

## Third component has two vertices only, let's check them in the 
## original table 
which(clu$membership == 3) 
## [1] 64 617 

## List the table rows where any of these two appear 
USAN_num1[ USAN_num1[,1] %in% c(64, 617) | USAN_num1[,1] %in% c(64, 617), ] 
##  ORIGN DESTN PAX 
## 691 64 617 636 
+0

谢谢!现在我明白为什么我有这些不同的群集。 – SWR 2013-03-31 09:05:28