カテゴリ毎にテーブルを出し分ける(Modelerスクリプトによるループ処理)
1.想定される利用目的
・同じような処理を効率的に実施するためPythonスクリプトを利用してループさせる
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
a.入力するデータは以下の通りです。
カテゴリの種類の数をループさせるためにインデックスを付番する
d.[フィールド作成]ノードを編集します。関数@INDEXで付番します。
[プレビュー]します。これがループのための対象データになります。
f.[条件抽出]ノードを配置します。編集はせず設定はブランクにしておきます。
Modelerスクリプトでループを設定する
Pythonモードで以下のようにスクリプトを記述します。[このスクリプトを実行]を選択します。
pythonスクリプト
stream = modeler.script.stream()
cate= stream.findByType("select",None)
num = 1
while num <= 3 :
cate.setPropertyValue("condition",u"index = "+ str(num) )
num = num + 1
stream.findByType("table",None).run(None)
ループ処理を実行する
画面の▶︎ボタンを押すと3つのテーブルが連続して表示されます。
注意事項
ModelerでPythonスクリプトを用いるとき、日本語Shift-JISのノードラベルや文字列を指定する場合はご注意下さい。「u”レコード集計”」のように「u」を先頭につける必要があります。
4.参考情報
Modelerスクリプトについて解説した記事
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)