問題タブ [edge-list]
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を使用して元の行の順序を維持しながら、一意の二重レコードを行ごとに抽出する方法は?
オリジナル(以下の更新を参照)
私は R の初心者で、現在、次の表現で 32 列と約 200.000 行のエッジ リストの形でコラボレーション データを扱っています。
A、B、Cは出版参加研究機関の国を表す。実際のデータセットの "A" は、たとえば "England" や "China" などの国名です。
一意のレコード (A) とダブル レコード (AA) を保持したいが、トリプレット (AAA) と同じレコードが連続して出現するのを削除したい。コラボレーションは ID によってパブリケーションに割り当てられるため、後で分析できるように順序を同じにする必要があります。ただし、行内の順序は関係ありません。
したがって、最終的にはこのようになります。
これまでのところ、 1、2、3に基づいて、タプル パッケージtriplicated
からいくつかのことを試しました。
ただし、行dt[!(triplicated(dt) | triplicated(dt, fromLast= TRUE)), ]
ごとに余剰を示す特定のレコードを削除するだけでなく、次の 4x4 テーブルにつながる行全体を削除します...
こことここdplyr
の回答も見ましたが、これまでに適切なアプローチを見つけることができませんでした。
元の問題の説明の実用的な解決策
Edit1: 明確化のために説明を調整: 実際のデータセットでは、"A" は、たとえば "England" や "China" などの国名です。
Edit2: より正確な再現可能な例を追加します。
アップデート
より正確で再現可能な例を追加し、元の問題の説明に正しい回答を組み込みました (以下を参照)。
目指す成果
r - データ フレームからのエッジリストの作成
試合のイベントを含むデータ フレームからエッジリストを作成しようとしています。データ フレームの各行は、敵チームのプレイヤーに対するキルです。Playerid
列は殺した人を示します。アシストは、この特定のキルをアシストした人物を示します。ID 1 ~ 5 はチーム 1 に属し、6 ~ 10 はチーム 2 に属します。最初の列には行 ID が含まれます。
必要なのは、これをエッジリストに変換し、後で有向ネットワークに変換することです。これにより、インディグリー、アウトディグリーなどを計算できます。さらに、各プレイヤー間でどれだけのやり取りがあったかを知る必要がありますが、これは価値ある有向ネットワークで確認できるはずです。ただし、これをエッジリストに変換する際に問題があります。オンラインで解決策を探してみましたが、エッジリストに変換された同様のデータセットを見つけることができませんでした。誰かが私を助けてくれたら、とても感謝しています。