SPSS Modeler에서 열 이름을 정규식으로 변경
7007 단어 modelerscriptSPSS정규식SPSS_Modeler
그런 경우에는 Modeler 스크립트에서 정규 표현식을 사용하면 쉽게 할 수 있습니다.
예를 들면 다음과 같이 집계를 한 후의 「_Sum」의 문자를 일괄로 없애고 싶습니다.
도구 스트림 속성 - 실행에서 스크립트 편집기를 엽니 다.
스크립트가 'Python'으로 설정되어 있는지 확인하고 다음 Python 코드를 붙여 넣습니다.
import modeler.api
import re
stream = modeler.script.stream()
#フィルターをつなげたいノード名を指定します。。例はレコード集計
startnode = stream.findByType(None, u"レコード集計")
filternode = stream.createAt("filter",u"列名変更", startnode.getXPosition() + 120, startnode.getYPosition())
stream.link(startnode, filternode)
for c in filternode.getOutputDataModel().columnIterator():
originalName = c.getColumnName()
#置き換えたい文字列を指定。例は_sum
p = re.compile('_Sum')
#置換後の文字列を指定。例は''なので消去を意味します
changedName = p.sub('',originalName)
filternode.setKeyedPropertyValue("new_name", originalName, changedName)
붙여넣으면 "이 스크립트 실행"버튼을 눌러 실행해 봅시다.
열 이름 변경이라는 필터 노드가 추가되었습니다.
속성을 보면 "_sum"문자열이 제거되었습니다.
미리보기 버튼을 클릭하여 미리보기를 확인해 봅시다.
모든 열 이름에서 "_Sum"문자열이 제거되었습니다.
조금 프로그램을 살펴 보겠습니다.
다음 줄에서 필터 노드를 연결할 노드를 지정합니다. 「_Sum」은 「레코드 집계」노드의 처리 후에 부가되므로, 「레코드 집계」노드의 뒤에 붙이고 있습니다.
startnode = stream.findByType(None, u"レコード集計")
다음 부분에서 문자열을 대체하고 있습니다.
p = re.compile('_Sum')의 '_Sum'이 대체 대상 문자입니다.
changedName = p.sub('',originalName)의 ''가 대체 후 문자입니다. 이것은 빈 문자이므로 결과적으로 문자를 지우는 의미입니다.
#置き換えたい文字列を指定。例は_sum
p = re.compile('_Sum')
#置換後の文字列を指定。例は''なので消去を意味します
changedName = p.sub('',originalName)
정규 표현을 사용할 수 있으므로 다양한 변환을 할 수 있습니다.
예를 들면
p = re.compile('_.+')
그렇다면 '_Sum'도 '_Mean'도 '_Sdev'도 모두 변환 대상으로 할 수 있습니다.
다음 기사 등을 참고하십시오.
정규식 HOWTO
htps : // / cs. py 응. rg/그럼/2.7/호 w와/레게 x. html # 세아 rch-an d-re p pse
샘플 Stream 파일은 다음과 같습니다.
https://github.com/hkwd/spsssample/raw/master/200410%E5%88%97%E5%90%8D%E5%A4%89%E6%9B%B4modeler%E3%82%B9%E3% 82%AF%E3%83%AA%E3%83%97%E3%83%88/200410%E5%88%97%E5%90%8D%E5%A4%89%E6%9B%B4modeler%E3% 82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88.str
테스트 환경
SPSS Modeler 18.2.1
Windows 10
Reference
이 문제에 관하여(SPSS Modeler에서 열 이름을 정규식으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawada2017/items/025352797a87dd85fbea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)