SPSS Modelerノードリファレンス 3_1 フィールド作成

# 3-1 フィールド作成ノード[フィールド設定タブ]

<img width="200" alt="107_89フィールド作成.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/a2792654-7b41-bb06-8bfa-6114c99e19eb.png">

## 1.ノードの目的
既存のフィールドを基にして新しいフィールドを作成します。例えば年齢から年代や成人フラグなどの新しいフィールドを派生させます。


## 2.解説動画（60秒）

<iframe width="560" height="315" src="https://www.youtube.com/embed/sdwSNouD62I" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## 3.クイックスタート

①年齢から運転歴を引き算して運転開始年齢を算出します。
＊サンプルデータ（CSV）は[5.参考情報]からダウンロードできます。
![data.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/5f032246-3b3e-d819-8a80-409d88fbf8ca.png)

② フィールド作成ノードの編集画面でフィールド名を[運転開始年齢]設定。右下の電卓ボタンを押します。
![変数名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/95823d86-0cea-3843-46a1-b4538fdf41aa.png)

③右がわのフィールドリストから[年齢]と[運転歴]を↑ボタンで選び、四則演算のマイナスボタンで式を完成させます。

![式ビルダ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4c107ddf-c49e-b124-97b8-c48275ef0461.png)


### 他の派生方法；[フラグ型]で年齢からシニアフラグ作成
60歳以上はシニアと判定するフラグを作成します。[派生：]を[フラグ型]にして真の条件を年齢>=60と記述します。

![フラグ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d3c813da-4552-07c8-b5e7-5ea04cadebcc.png)

![スクリーンショット 2022-01-14 13.49.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/068f7bee-02e0-8233-efbe-94ab10c8652a.png)

同様の処理をClem式のまま実行するには以下のように関数で記述します。
![スクリーンショット 2022-01-14 14.05.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/8b4f0789-410a-4399-6afb-c82ecf66646d.png)


### 他の派生方法；[名義型]で年齢から年代を作成
年代フィールドを作成します。[派生：]を[名義型]にして各年代と式を記述します。
＊この時カラのフィールド設定値を残すと動作しないので注意してください。
![スクリーンショット 2022-01-14 13.47.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c69fc857-f22f-9b5a-36b4-635d50994a4d.png)
![スクリーンショット 2022-01-14 13.56.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/6878aef3-8bfd-2c67-0ec9-4890acd1d9a9.png)

### 他の派生方法；[カウント型]で種類別の通し番号を作成

![スクリーンショット 2022-01-14 14.29.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4bba11ad-308c-9e9e-ffce-06798fb53139.png)


種類別に通し番号を振ります。[派生：]を[カウント型]にして初期値を１へ。
カウント条件は@&#xFFF0;OFFSET(種類,1) = 種類
リセット条件は@&#xFFF0;OFFSET(種類,1)  /=  種類

@&#xFFF0;OFFSETはSPSS Modelerの便利な@関数の一つです。@&#xFFF0;OFFSET(種類,1)は種類フィールドの1レコード上を参照を意味します。種類が同じ状態ではカウントアップし、種類が切り替わるとリセットするように設定します。

![スクリーンショット 2022-01-14 14.29.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7bbd04f5-8b04-cb5a-feed-beae96b924bb.png)


## 4.Tips
#### 通し番号を作成
関数@&#xFFF0;INDEXで先頭レコードから順番に通し番号を振ります。

![スクリーンショット 2022-01-14 14.42.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2ba14d39-1d98-7936-d9ca-793c67874ff8.png)

#### 複数フィールドを同時に作成
以下の商品毎の実績を比率に変更します。
![スクリーンショット 2022-01-24 10.37.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c4cf094f-a2b4-aa60-6d71-039e64650d19.png)

[モード]を[複数]にして　[フィールドリスト]に商品AからDを選択。[フィールド名拡張子]に[_比率]と記入します。CLEM式の@&#xFFF0;FIELDはワイルドカードです。商品Aの比率には商品Aの実績を、商品Bの比率には商品Bの実績を入れ替えて計算します。
![スクリーンショット 2022-01-24 10.31.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/af19494b-94c6-8409-14b2-7860ffcb2869.png)

比率を示す4つのフィールドが出来上がりました。
![スクリーンショット 2022-01-24 10.36.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d16cf7cd-915a-7d9e-521b-6f525f86c859.png)



#### 文字列の加工処理

https://qiita.com/Makimaki2020/items/35ab02a7375325e678c1

#### 日付や時間の加工処理

https://qiita.com/Makimaki2020/items/72e3b774039327fa4ac4

#### 移動平均を作成

https://www.ibm.com/blogs/solutions/jp-ja/modeler-tips-13/

#### ID毎に累積値を計算

https://www.ibm.com/blogs/solutions/jp-ja/modeler-tips-12/

## 5.参考情報

#### フィールド作成を主題にしたSPSSヒモトクブログ

https://www.ibm.com/blogs/solutions/jp-ja/spssmodeler-push-node-7/

#### フィールド作成を主題にしたQiita記事

https://qiita.com/kawada2017/items/7b3c279963d39043214a

#### 利用データ

右クリックでリンク先を保存してください。

https://raw.githubusercontent.com/yoichiro0903n/blue/main/attitude.csv

#### ノードのヘルプ

https://www.ibm.com/docs/ja/spss-modeler/18.3.0?topic=nodes-derive-node

#### SPSS Modeler 逆引きストリーム集（データ加工）

https://qiita.com/416nishimaki/items/4bf813e6cba84b2a1008

#### SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/private/503037195081d3323eee