SPSS Modeler에서 입력 노드 설정 일괄 변경

2473 단어 tips모델러SPSS
SPSS Modeler에서 작업할 때 입력 파일이 많을 때마다 하나의 노드를 열어 구분 기호, 줄 바꿈, 인코딩 등을 설정하는 것이 번거로울 수 있습니다.

모든 입력 노드에 동일한 설정을 한다면, 일괄적으로 설정할 수 있으면 좋겠다고 생각해, Python 스크립트로 일괄 변경하기로 했습니다.

절차



1. 도구 > 스트림 속성 > 실행을 클릭합니다.
   

2. 스크립트 설정 화면이 열립니다. 파란색 음영 부분에 Python 스크립트를 작성할 수 있습니다.
   

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. 왼쪽에서 다섯 번째 '이 스크립트 실행' 아이콘을 클릭하여 실행합니다.



이제 스트림에 있는 모든 가변 길이 파일 노드의 설정이 일괄적으로 변경되었습니다.

과거에도 몇 번이나 같은 것을 반복하고 있습니다만, 그때마다 일시적인 작업이므로 스트림을 보존하지 않고 버려 버렸기 때문에 매번 매뉴얼을 참조해 Python 스크립트를 준비하고 있었기 때문에, 수 한 달 후 자신을 위해 이번에는 Qiita에게 메모를 남기기로 결정했습니다.
자신의 메모이므로, 비교적 자주 사용하는 곳만의 기능입니다만, 이것을 응용하면, 다른 종류의 노드도 일괄 변경하고 싶을 때에 사용할 수 있다고 생각합니다. 귀찮다고 생각하고 있는 다른 누군가의 참고가 되면 다행입니다.

시도한 환경



Modeler 18.2.1
Windows 10

참고 링크



IBM SPSS Modeler 18.2.1 Python 스크립트 및 자동화 가이드

좋은 웹페이지 즐겨찾기