0

いくつかのsna分析を実行したいと思います。私はRStudioとigraphパッケージを使用しています。私の入力データはテキストファイルからのものです(タブで区切られたテキストファイルとしてExcelから作成されました)。データファイルには3つの列があります。1行目と2行目はネットワークデータ(頂点)で、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つの別々の部分があります。私のデータは1つのネットワークに接続する必要があるため、これはまったく意味がありません。データセットを確認しましたが、実際には異なるサブネットワークはありません。

これが私が得るクラスターの特徴です:

$csize
[1]   5 608   2   4   5   2

$no
[1] 6

小さなクラスター内の1つの頂点は、他の1つだけでなく、他の多くの頂点に接続する必要がある巨大な空港です...

更新:最新のigraphバージョンに更新しましたが、それでも機能しません。データの模範的な部分を.txtファイルとしてここにアップロードしました:USAN_numS.txt

誰かが私が間違ったことについて考えを持っているなら素晴らしいでしょう。ありがとうございました

4

1 に答える 1

1

したがって、上記のコメントで述べたように、混乱の原因として考えられるのは、グラフに実際には数値であり、igraphの頂点IDと一致しないシンボリック頂点名が含まれていることです。回避策は、頂点名を削除するか、グラフの作成時に頂点名を明示的に指定して、igraph頂点IDと一致させることです。

しかし、グラフには実際には複数のコンポーネントがあります。次のコードを参照してください。元のテーブルで確認すると、2つの頂点はテーブルに1回だけ表示され、それらは2つのコンポーネントを形成します。

ネットワークに実際に複数のコンポーネントがあるか、ファイルに誤りがある可能性があります。

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
于 2013-03-31T00:39:58.287 に答える