問題タブ [sna]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R - 長さが異なる行列の行と列の一致
現時点で私の問題は次のとおりです。特定の年に共同プロジェクトに参加しているアクターのペアを表す有向 1 モード エッジリストがあります。これは次のようになります。
今、特定の年のサブセットのみが必要です。すべてのアクターがその年に活動するわけではないため、サブセットの次元は異なります。次のネットワーク分析では、加重および有向隣接行列が必要なので、[ネットワーク パッケージ] のオプションを使用して作成します。最初にネットワーク オブジェクトとしてロードし、次に隣接行列に変換します。
結果の行列は、次のようになります。
ここまでは順調ですね。私の問題は次のとおりです。私が計画しているさらなる分析のために、同じ次元と順序を持つ毎年の隣接行列が必要です。つまり、最初のデータセットのすべてのアクターは、対応する年のマトリックスの行名と列名でなければなりませんが、マトリックスには、この特定の年の観測されたペアのみが含まれている必要があります。私の問題が明確であることを願っています。どんな種類の建設的な解決策にも感謝します。
私のアイデア ATM は次のとおりです。初期データセットと縮小されたデータセットのマトリックスを作成します。次に、そこにあるすべてのマトリックス値をゼロに設定します。次に、縮小された行列と何らかの形で一致させ、正しい行と列に正しい値を入力します。残念ながら、これがどのように可能になるかはわかりません。
この問題を解決する方法を知っている人はいますか?
python - Pythonでエッジリストをigraphにインポートするためのフォーマット
Pythonにインポートするためにigraphで受け入れられるedgelist形式は何ですか? 重み付けされたエッジを含むテキスト ファイルはどのようになりますか?
以前に R で igraph を使用したことがありますが、使用する必要があるマシンに R がインストールされていないため、Python で立ち往生しています。
次のような egelist.txt があります。
...値は (ソース、ターゲット、重み) 形式です。
これをpythonにインポートするにはどうすればよいですか?または、入力を再フォーマットする必要がありますか?
とりあえず試してる
インポートステートメントに列の順序を期待する方法を設定する方法と、ドキュメントからの理解がわかりません (http://hal.elte.hu/~nepusz/development/igraph/tutorial/ tutorial.html) は、ノードのタグ付き ID として "321321" を使用するのではなく、321,321 個のノードがプレイされていることを前提としていることです。
python - Ncol()形式でedgelistをインポートした後、igraphはノード属性を入力しますか?
これがマージなのか、2 つの個別のインポートなのか、それとも完全に再考する必要があるのか はわかりません。最初にエッジ、次にノードデータの 2 段階のインポートを常に行っていた gephi で遊んだ後、もともと igraph を使い始めました。これは igraph にとって賢明な戦略ですか?
そのため、最近のヘルプのおかげで、次のようなエッジ リストをインポートしました。
...インポートコマンドで
このエッジリスト インポートによって生成されたノードに属性を追加したいと考えています。これらは次のようなものになります...
このデータを現在のグラフに追加するにはどうすればよいですか? 洗練されたエッジリストをインポートするためのフォーマットはたくさんありますが、ノードリストのフォーマットはありません。私は何が欠けていますか?ノードデータを適切なノードに自動的に追加する機能はありませんか?
そうでない場合、誰かがノード データを既存のグラフに適切に入力する簡単な方法を推奨できますか?
私の本能は次のようなものでした...
しかし、これは非常に不器用に見えます。
r - 範囲外の下付き文字 - 一般的な定義と解決策?
RI を使用していると、"subscript out of bounds" というエラー メッセージが頻繁に表示されます。例:
これにより、次のエラーが生成されますError in reach_mat[i, alter] = 1 : subscript out of bounds。
ただし、私の質問はこの特定のコードに関するものではありません (それも解決するのに役立ちますが) が、私の質問はより一般的です:
- 添字範囲外エラーの定義は何ですか? 何が原因ですか?
- この種のエラーにアプローチする一般的な方法はありますか?
r - igraph または tnet を使用して R で二部ネットワークを作成する方法
次のような 2 モード ネットワークのエッジリストがあります。
これをRで分析したいのですが、試したことはすべて失敗しているようです。それを 1 モード ネットワークに変換するとメモリ制限が発生し、igraph または tnet で 2 部構成として分析する方法がわかりません。
igraph では、次を使用して作成された igraph オブジェクトについて、bipartite.projectionすべてを提供しますFALSE
tnet では、igraph ネットを tnet に変換できません。元のデータ フレームを使用しようとすると、グラフの重複が原因で拒否されます。
したがって、次のいずれかに対する回答は非常に高く評価されます。
bipartite.mapping機能の使用方法を教えてください。- igraph オブジェクトを tnet に入力するにはどうすればよいですか?
- 他のすべてが失敗した場合、重複したエッジを持つデータ フレームを tnet に入力するにはどうすればよいですか?
これらが基本的な質問である場合は申し訳ありませんが、ドキュメントはほとんどありません。
編集
例:
r - R SNA の Tnet の問題
R の tnet 関数で 2 つの予期しないエラーが発生します。私のエッジリスト:
そして、それを1つのモードにしようとすると:
何か案は?ここにいる誰かが以前に tnet を使用したことがある場合、どの例も非常に役立ちます。
r - Rでネットワークオブジェクトに変換した後、エッジ値をグラフに保持する
注 1: R パッケージの "network" と "sna" を使用しています。
注 2: 元のデータは .csv ファイルのエッジリスト形式です。
エッジリスト データを R に読み込む最良の方法を探していました。一見すると、これは簡単です。
ネットワークにエッジ値を返すように要求すると (get.edge.values)、正しい値が返されます。
ただし、私が尋ねるsummary(network)と、すべての値が 1 に設定されている隣接行列が返されるだけです (対角線を除く)。値がゼロだったとしても、値は 1 になります。
さらに、 degree(network) のようなものを取得しようとすると、間違った結果が返されます。
私はこれについて何日も探してきました。考えられる解決策は、 を使用することでしたnetwork2<-as.matrix.network(netwerk1, matrix.type="adjacency", attrname="val")。これは機能します。ただし、問題は、これがネットワーク オブジェクトではなくなり、マトリックス クラスになることです。その結果、頂点属性をネットワークに追加できません。network2 を再度ネットワーク オブジェクトに変換すると、ネットワーク内のエッジ値が失われます。
いくつかの助けをいただければ幸いです。
ベスト、フレデリク
r - igraphにインポートした正しいネットワークが表示されない
いくつかのsna分析を実行したいと思います。私はRStudioとigraphパッケージを使用しています。私の入力データはテキストファイルからのものです(タブで区切られたテキストファイルとしてExcelから作成されました)。データファイルには3つの列があります。1行目と2行目はネットワークデータ(頂点)で、3行目は各エッジの重みです。次のような空港接続データを使用します。
1 54 28382(空港ID出発空港/空港ID目的空港/重量としての乗客番号)
これらのコマンドでidをロードしました:
データは次のようになります。
次に、発生した問題について説明します。igraphで確認すると、ネットワークは6つの異なるクラスターで構成されています。ネットワークのグラフィック画像を作成する場合でも、6つの別々の部分があります。私のデータは1つのネットワークに接続する必要があるため、これはまったく意味がありません。データセットを確認しましたが、実際には異なるサブネットワークはありません。
これが私が得るクラスターの特徴です:
小さなクラスター内の1つの頂点は、他の1つだけでなく、他の多くの頂点に接続する必要がある巨大な空港です...
更新:最新のigraphバージョンに更新しましたが、それでも機能しません。データの模範的な部分を.txtファイルとしてここにアップロードしました:USAN_numS.txt
誰かが私が間違ったことについて考えを持っているなら素晴らしいでしょう。ありがとうございました
r - R: sna (ソーシャル ネットワーク分析) パッケージ: データ フレームから隣接行列
更なる変身の手助けを期待しています。データフレームがあるとします:
ここで、row:はノードからノードへsource = i | target = j | weight = wの重みの有向エッジを示します。この形式の任意のデータ フレームが与えられた場合、誘導グラフのコンポーネントを調査する手順を探しています。私によるこの質問に関するベンのコメントを読んだこと:wijG
R: Gephi: write.gexf で使用するデータフレームを操作する
sna関数の形で探していたものを持っていると思われるパッケージをチェックアウトしましたcomponent.dist。datだから私の質問は、「データフレームを関数の引数に適した形式に変換するにはどうすればよいですかcomponent.dist(または、この問題に取り組むためのより「最適な」方法はありますか?)」私は次のコードを試しました:
nrow(df)しかし、これには明らかな欠点があります (たとえば、 bynrow(df)行列を形成しません)。
助けてくれてありがとう。
r - 行列の配置 - ネットワーク グラフ
gplotの関数を使用して、ネットワーク グラフを作成しようとしていましたlibrary(sna)。グラフは、異なるフィールド間のリンクを表します。次のデータがあります。
ここで、「MTM」、「FI」、および「MCLI」は「関心のあるフィールド」であり、すべての行は、共通のフィールドの一部/いずれか/まったくない異なるプロジェクトです。これらのデータを次のように変換するにはどうすればよいでしょうか?
ネットワークグラフでフィールドを「ノード」として、接続を「エッジ」として表現することに興味があります。これは、最も「人気のある」相互接続されたフィールドを表すのに役立ちます。これらのデータで可能ですか?
前もって感謝します!
編集:私はこのソリューションに出くわしました。これは、私が望むものには問題ありません: