4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SPSS Modeler で入力ノードの設定を一括変更

Last updated at Posted at 2019-12-26

SPSS Modeler で作業をしている際、入力ファイルが多数ある場合に、ひとつひとつのノードを開いて、区切り文字や改行やエンコードなどを設定するのが面倒になることがあります。

全ての入力ノードに同じ設定をするなら、一括で設定できたらいいのにと思い、Pythonスクリプトで一括変更することにしました。

手順

1.ツール > ストリームのプロパティー > 実行をクリックします。
   選択画面.png

2.スクリプトの設定画面が開きます。青い網掛け部分にPythonスクリプトを書くことができます。
   実行タブ1.png

3.下記のような形式で一括変更したい内容を設定します。

import modeler.api

stream = modeler.script.stream()
for node in stream.iterator():
    if (node.getTypeName() == "variablefile"):                  # ストリーム内の全ての可変長ファイルノードが対象
        node.setPropertyValue("quotes_2", u"PairAndDiscard")    # 二重引用符をペアで破棄
        node.setPropertyValue("quotes_1", u"PairAndDiscard")    # 単一引用符をペアで破棄
        node.setPropertyValue("break_case_by_newline", True)    # 行区切り文字は改行文字にチェック
        node.setPropertyValue("read_field_names", False)        # ファイルからフィールド名を取得のチェック無
        node.setPropertyValue("encoding", u"UTF-8")             # エンコードをUTF-8にセット

4.左から5番目の「このスクリプトを実行」アイコンをクリックして実行します。

Runアイコン.png

これでストリーム上にあるすべての可変長ファイルノードの設定が一括で変更されました。

過去にも何度か同じことを繰り返しているのですが、その都度一時的な作業なのでストリームを保存せずに捨ててしまっていたため、毎回マニュアルを参照してPythonスクリプトを用意していたため、数か月後の自分のために、今回はQiitaにメモを残すことにしました。
自分用のメモなので、比較的よく使うところだけの機能ですが、これを応用すれば、他の種類のノードも一括変更したいときに使えると思います。面倒だなと思っている他のどなたかの参考にもなれば幸いです。

試した環境

Modeler 18.2.1
Windows 10

参考リンク

IBM SPSS Modeler 18.2.1Python スクリプトとオートメーション・ガイド

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?