1

次のようなデータテーブルがあります。

Name | Date-Freq | Date-Amount | Date-Freq | Date-Amount 
A    |      4    |    3000     |     8     |   9000
B    |      5    |    4000     |     9     |   7000
C    |      6    |    5000     |     10    |   8000

そして、私はそれを次のようにしたい:

Name |     Date    |  Freq | Amount 
A    |  July 2014  |   4   | 3000
A    |  Aug 2014   |   8   | 9000
B    |  July 2014  |   5   | 4000
B    |  Aug 2014   |   9   | 7000
C    |  July 2014  |   6   | 5000
C    |  Aug 2014   |   10  | 3000

このようなことを行う最善の方法は何ですか? 2 つの新しい列を作成する必要がありますか?

4

1 に答える 1

2

あなたが達成したいことは、多くのステップ、ファセット、新しい列の追加などを必要とします.しかし、あなたはOpenRefineでこれを達成することができます.

次の組み合わせを使用する必要があります。

  1. どんな種類のマージ作業でも、常に (行モードではなく) レコード モードで作業してください。
  2. 列全体のセルを行に転置します (プリペンド付きの 1 つの MERGE 列に)
  3. 名前列を最初の列に移動します。
  4. 名前列に入力します (転置後に一部のセルが空白になっているためです。後で、特定の転置またはマージの後に再度入力する必要がある場合があります)。
  5. value.startsWith("Amount") などでカスタム テキスト ファセットを使用します。
  6. Add new column based on を使用して、MERGE 列に基づいて新しい列を作成します。
  7. 必要に応じて列を移動して、手順 2 を再度実行します。
  8. 必要に応じて手順を繰り返します。

上記の手順の最初のセットの後に何が起こるかを示す OpenRefine プロジェクトの例を次に示します (確認するには元に戻す/やり直しを使用しますが、ファセットは表示されません)。

セル全体を 1 つの列に転置する OpenRefine プロジェクト

于 2015-10-24T16:50:16.607 に答える