このページは解答編です。
↓ネ
↓タ
↓バ
↓レ
↓防
↓止
答えと解説
設問はこちらでした。
P-057: 056の抽出結果と性別コード(gender_cd)により、新たに性別×年代の組み合わせを表すカテゴリデータを作成し、10件表示せよ。組み合わせを表すカテゴリの値は任意とする。
※サンプルの結果は、gender_cdとeraをそのままくっつけています(100の位がgender_cdで下二桁がeraです)
※新しいカテゴリデータのフィールド名はgender_eraとする
解答ワークフローは以下のようになります。
性別と年代を組み合わせて新しいカテゴリフィールドを作成する問題です。
まず、56問目の結果には性別コード(gender_cd)が含まれていないため、読み込んで結合する必要があります。
なお、出力結果は56問目の順番をそのまま使いますので、レコードIDツールを56問目のデータを読み込んだあとに追加します。その後、結合ツールで結合していきます。特定のフィールドで結合しますが、キーフィールドは「customer_id」です。
不要な項目が大量にあるので、ついでに削除しておきましょう。customer.csvファイルの中で必要なのは、gender_cdのみです。
その後、いよいよフォーミュラツールで新規フィールドを作っていきます。
オリジナルの問題では任意とされていますが、わかりやすくするため新規のフィールド名は「gender_era」とし、フィールド名の通り、gender_cdとeraをそのまま横にくっつける形としたいと思います。つまり、gender_cdが1でeraが10であれば、110となります。
この時、56問目でeraを数値型で作成しているため、そのまま結合するには文字列型にする必要があります。そのため、ToString関数を使います。あとは単純に結合するだけのため、以下のような計算式となります。
[gender_cd]+ToString([era])
実際のフォーミュラツールの設定は以下のようになります。
もちろん、数値型でいくのであれば、ToNumber関数を使って以下のような数式で実現することも可能です。
ToNumber([gender_cd])*100+[era]
いずれにしても、この後はソートツールを使い、RecordIDの昇順で並べ替えることで元の順番に戻し、不要項目を削除し、サンプリングツールなどで先頭から10件抽出すれば完了です。
まとめ
今回は、性別と年代を組み合わせて新しいカテゴリフィールドを作る問題でした。元データのcustomer.csvから作れば結合ツールなどは当然必要ありません。基本的にはそれほど難しくない問題です。
コメント