【IBM SPSS Modeler】スクリプトとオートメーション [データサイエンス、統計モデル]
IBM SPSS Modeler(旧 Clementine)で日別のファイルデータを集計することになった。
やりたいことを簡単に書くと、
① 日付が付いているファイルを読み込む。
② そのファイルの日付をフィールドに持たせる。
③ 処理をする。【スーパーノード】
④ その日付を付けてファイルを出力する。
⑤ 1か月分のファイルを繰り返す。
【スクリプトの説明】
① 日付が付いているファイルを読み込む。
set :variablefilenode.full_filename に読み込むファイル名を記載。
② そのファイルの日付をフィールドに持たせる。
フィールド作成ノードですが、これは、derivenodeになります。
④ その日付を付けてファイルを出力する。
set :outputfile.full_filename に出力先を記載。
今回は、別々のファイルに出力していますが、レコード追加をすれば、同じファイルに1か月分のデータを出力することもできます。
⑤ 1か月分のファイルを繰り返す。
1日~9日と、10日~30日は、ファイル名の関係で分けておく必要があります。
forループを2つ作っています。
これを応用すれば、月またぎの集計にも対応できます。
※ "ScriptingAutomation.pdf"を読めば、このあたりのスクリプトの詳細が書かれています。
やりたいことを簡単に書くと、
① 日付が付いているファイルを読み込む。
② そのファイルの日付をフィールドに持たせる。
③ 処理をする。【スーパーノード】
④ その日付を付けてファイルを出力する。
⑤ 1か月分のファイルを繰り返す。
for I from 1 to 9
set :variablefilenode.full_filename = 'D:\hoge\input_2010060' >< I >< '.txt'
set :derivenode.formula_expr = '"2010-06-0' >< I >< '"'
set :outputfile.full_filename = 'D:\hoge\output_2010060' >< I >< '.txt'
execute 'output'
endfor
for I from 10 to 30
set :variablefilenode.full_filename = 'D:\hoge\input_201006' >< I >< '.txt'
set :derivenode.formula_expr = '"2010-06-' >< I >< '"'
set :outputfile.full_filename = 'D:\hoge\output_201006' >< I >< '.txt'
execute 'output'
endfor
【スクリプトの説明】
① 日付が付いているファイルを読み込む。
set :variablefilenode.full_filename に読み込むファイル名を記載。
② そのファイルの日付をフィールドに持たせる。
フィールド作成ノードですが、これは、derivenodeになります。
④ その日付を付けてファイルを出力する。
set :outputfile.full_filename に出力先を記載。
今回は、別々のファイルに出力していますが、レコード追加をすれば、同じファイルに1か月分のデータを出力することもできます。
⑤ 1か月分のファイルを繰り返す。
1日~9日と、10日~30日は、ファイル名の関係で分けておく必要があります。
forループを2つ作っています。
これを応用すれば、月またぎの集計にも対応できます。
※ "ScriptingAutomation.pdf"を読めば、このあたりのスクリプトの詳細が書かれています。