パラメータで入出力ファイルを制御する(SPSS Modeler データ加工逆引き9-20)

# パラメータで入出力ファイルを制御する

![スクリーンショット 2023-10-11 19.06.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/68da8d24-2a7f-e0ca-dcf8-08efe8eb0904.png)


## 1.想定される利用目的

・業務で定型化されたストリームのパラメーター実行

## 2.サンプルストリームのダウンロード

https://github.com/yoichiro0903n/blue/raw/main/para_in_out.str

サンプルデータ1(右クリックでダウンロード)
https://raw.githubusercontent.com/yoichiro0903n/blue/main/1.csv

サンプルデータ2
https://raw.githubusercontent.com/yoichiro0903n/blue/main/2.csv

サンプルデータ3
https://raw.githubusercontent.com/yoichiro0903n/blue/main/3.csv

## 3.サンプルストリームの説明

![スクリーンショット 2023-10-11 18.41.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/3f1cb71f-7e15-4976-33fd-9023d6bc58ce.png)


a.入力するデータは以下の通りです。ストリーム作成のために[1.csv]を利用します。
![スクリーンショット 2023-10-11 18.44.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/b899e979-67d6-c92c-4f42-21eaaee16c8e.png)

b.[レコード集計]ノードを編集します。
![スクリーンショット 2023-10-11 18.44.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/5e373b08-08c6-ff50-bbc5-43e26894e61e.png)

[プレビュー]します。　こちらが定型処理後の保存データ[out1.csv]になります。
![スクリーンショット 2023-10-11 18.45.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2201cc02-720a-4a4e-1428-21fab12fbc6b.png)

c.[フラットファイル]ノードを編集します。保存先とファイル名はブランクにしておきます。
![スクリーンショット 2023-10-11 18.44.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/03064828-5003-0f8b-f7cd-cda41f8ec638.png)

### ストリームパラメータをセット

以下のメニューからパラメータを設定します。

![スクリーンショット 2023-10-11 18.57.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c1e466af-2696-3610-dc36-df0edfe8cefd.png)

[名前]と[ストレージ]を設定します。プロンプトはチェックします。
![スクリーンショット 2023-10-11 18.49.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/91886b49-2b1c-0ca1-739d-39612688cc2d.png)

### Modelerスクリプトでループを設定する

以下のメニューから　スクリプトを設定します。読み込み先と保存先のパスを変更します。

![スクリーンショット 2023-10-11 18.55.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/b8d9cdbd-b2c5-f8ed-b1d8-5e8a3ff7d9eb.png)

Pythonモードで以下のようにスクリプトを記述します。[このスクリプトを実行]を選択します。
![スクリーンショット 2023-10-11 18.58.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/cb22c5bb-2582-48f7-1f26-2454ddd34596.png)

```python:pythonスクリプト
stream = modeler.script.stream()
data = stream.findByType("variablefile",None)
out = stream.findByType("outputfile",None)
Para = stream.getParameterValue("Fname")


data.setPropertyValue("full_filename", u"/Users/aa517821/Desktop/" + Para + ".csv")
out.setPropertyValue("full_filename", u"/Users/aa517821/Desktop/out" + Para + ".csv")

stream.findByType("outputfile",None).run(None)	

```

### 　パラメータを利用して実行する

画面の▶︎ボタンを押すとプロンプトが起動します。

![スクリーンショット 2023-10-11 19.00.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/19ed0e86-9724-b737-2cd9-7d86014d2244.png)

![スクリーンショット 2023-10-11 19.01.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/e5618ef5-dbbc-8674-38b6-bf81a325a367.png)

出力ファイルが作成されました。

![スクリーンショット 2023-10-11 19.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d88b7b5c-39c5-2406-3210-236d904c5e0e.png)



#### 注意事項

入出力のファイルパスからパラメータ指定することも同じ方法で可能です。

![スクリーンショット 2023-10-12 8.39.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/568c80e1-5c0c-3608-c005-2f6dc43d9500.png)


## 4.参考情報

#### ファイルの出し分けについて書かれた記事

https://qiita.com/416nishimaki/items/77b83be16ca6a5804658

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

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

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

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