2016-08-18 1 views
1

this question and it's answer을 추적하면서 SPSS 구문에서 사용하기 위해 Python에서 SPSS 사용자 정의 함수를 만들려고합니다.SPSS - 시작 스크립트의 Python 함수

나는 구문에서 잘 작동하는 프로그램이 있습니다

begin program. 

import spss,spssaux, sys 

def CustomFunction(): 
    #function code here 

CustomFunction() 

end program. 

을하지만 난 CustomFunction()가 "정상"SPSS 구문에서 사용할 수있게하려면.

답변

1

표준 구문은 파이썬 코드를 사용하지 않으며 파이썬 함수를 변형 시스템에 추가하지도 않습니다. 파이썬 모듈을 가지고 있다면 그 모듈을 가져 오기 만하면 그 내용을 직접 사용할 수 있습니다. 파이썬이 중복 된 import를 무시하는 것이 현명하기 때문에 여러 번 가져 오는 것에 대해 걱정하지 마십시오.

파이썬 코드를 일반적인 구문으로 사용하려면 확장 명령을 만들어야합니다. 이것들은 표준 스타일의 문법을 가지고 있지만 파이썬 (또는 R 또는 Java)으로 구현됩니다. 이 중 많은 것들이 통계와 함께 설치되거나 유틸리티 메뉴 (또는 V24의 확장 메뉴)에서 설치할 수 있습니다. 이것을 쓰는 방법에 대한 정보는 도움말 시스템의 Python 도움말 문서 및 관련 항목에 있습니다.

예를 들어 SPSSINC TRANS 확장 명령을 사용하면 파이썬 함수를 변환 코드로 사용할 수 있습니다. 예를 들어, CustomFunction이 변수를 생성하거나 변환하고 mymodule.py에 저장되면, 다음과 같이 호출 될 수 있습니다.

SPSSINC TRANS RESULT = newvar
/FORMULA "mymodule.CustomFunction (x, y, z)".

통계가 시작되면 확장 명령이 자동으로로드되므로 시작 스크립트가 필요하지 않습니다.

+0

그러면 실제로 필요한 것은 내 CustomFunction()을 확장 명령으로 바꾸는 것입니다. 필요를 더 명확하게하기 위해 초기 게시물을 편집했습니다. –

+0

단순한 변형 인 경우 TRANS를 사용할 수 있습니다. 다른 것들은 명령 이름, 부속 명령 및 키워드 유형 및 기타 토큰과 같은 구문을 정의하는 xml 파일을 만든 다음 통계에 포함 된 extension.py 모듈을 사용하여 매핑하고 유효성을 검사하여 코드에 전달합니다. 필요에 따라 사용자 정의 대화 상자와 구문에 대한 도움말 파일을 만들 수 있습니다. 일반적으로 이것을 설치하기 쉽도록 확장 번들로 패키지화하지만 적어도 적절한 위치에 복사 할 수있는 xml 파일과 Python 코드가 필요합니다. – JKP