1

こんにちは皆さん、これが私が達成しようとしていることです....

私のデータ構造Table1:

ID#| Capability.1 | Capability.2 | Capability.3| .... 37 total Capability.# columns 
97 | Crawl        | Walk         | Run         |
98 | Crawl        | null         | null        |
99 | Crawl        | Walk         | null        |

私のデータ構造Table2:

Capability | Vehicle1Score| Vehicle2Score| Vehicle3Score| 
Crawl      | 4            | 1            | 5            |
Walk       | 3            | 1            | 5            |
Run        | 2            | 0            | 0            |

ID 番号がクロール、ウォーキング、およびランニングを必要とする場合、車両 1 ~ 3 のスコアを、クロール、ウォーキング、およびランニングの能力に関する記録とマージしたいと考えています。例えば:

ID#| Capability.1 | Capability.2 | Capability.3| Vehicle1CapaScore | Vehicle2CapaScore | Vehicle3CapaScore| 
97 | Crawl        | Walk         | Run         | 9 [4+3+2]         | 2 [1+1+0]         | 10 [5+5+0]       |
98 | Crawl        | null         | null        | 4 [4+null+null]   | 1 [1+null+null]   | 5 [5+null+null]  |
99 | Crawl        | Walk         | null        | 7 [4+3+null]      | 2 [1+1+null]      | 10 [5+5+null]    |

マージ クエリ (Table1[Capability.#] = Table2[Capability] の LeftOuterJoin) を使用して、Capability.# 列ごとに Table2 Capability と Vehicle Scores を Table1 に取り込みました (合計 37 個のマージされたクエリ)。ただし、結合された 37 個の個別のクエリを取得して、Vehicle1CapaScore 列のスコアを合計して入力する方法がわかりません。

お役に立てれば、SQL サーバーでクエリを作成して、達成したいことを示すことができます。ただし、私は同じことをするのに十分なほど R に習熟していません。これが理にかなっていて、あなたが助けることができるかどうか私に知らせてください.

4

1 に答える 1

2

たとえば、テーブル 1 の場合は、両方のテーブルのピボットを解除します。

  1. ID#列を選択
  2. Transform / Unpivot columns / Unpivot Other Columns を選択します

表 2 についても同様に、Capability 列を選択します。これにより、1 つのステップでマージできる、より有用なデータ構造が得られます。結果に Group By を使用して、表 2 / Vehicle Score の値を機能全体で合計します。

あなたの出力形式がどれほど役立つかはわかりますが、それが本当に必要な場合は、おそらく 2 つのピボット ステップ (Capability # と Vehicle #) を使用して Merged の結果から生成できます。

于 2016-04-28T07:19:34.900 に答える