2017-01-22 5 views
2

그래서 나는 SPSS를위한 파이썬 확장을 발견했으며, 모든 것이 잘 작동하고, 지금은 몇몇 스크립트를 작성하고 확장 맵에 포함 시켰습니다. 그러나 이제는 인수가 필요한 몇 개의 스크립트를 만들었으므로 동일한 방법을 사용할 수 있다고 생각했지만 그렇지 않은 것 같습니다.파이썬으로 SPSS 확장을 생성

<Command xmlns="http://xml.spss.com/extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="testing_p" Language="Python"> 
</Command> 

그러나,이 ([, 'my_var' 'my_var2를']) testing_p를 호출 할 때 오류를 던지는 유지 :

Warnings 
This command should specify a valid subcommand at the beginning. 
Execution of this command stops. 
다음 .XML 파일로

def Run(args): 
    import spss 
    def testing_p(variables): 
     all_variables = [spss.GetVariableName(i) for i in range(spss.GetVariableCount())] 
     variable_nr = [all_variables.index(i) for i in variables] 

     print all_variables 
     print variable_nr 

확장 맵에 넣지 않고 단지 다음을 수행하면 모든 것이 잘 작동하기 때문에 머리를 감쌀 수 없습니다.

BEGIN PROGRAM. 
import spss 
def testing_p(variables): 
    all_variables = [spss.GetVariableName(i) for i in range(spss.GetVariableCount())] 
    variable_nr = [all_variables.index(i) for i in variables] 

    print all_variables 
    print variable_nr 
END PROGRAM. 

답변

1

Python, R 또는 Java로 작성 될 수있는 확장의 경우 명령 이름, 하위 명령, 원하는 인수 및 인수 유형을 포함하는 구문 스펙을 작성해야합니다. 다음은 통계가 설치된 SPSSINC_TURF의 시작 그림입니다. enter image description here

이렇게하면 Statistics 파서가 사용자 입력을 확인하는 데 도움이됩니다. 또한 사용자 입력을 포함하는 복잡한 구조로 Run 함수를 호출합니다. 확장 모듈의 함수를 사용하여 파이썬 변수에 매핑하고 추가 검증을 수행 할 수 있습니다. 다음은 SPSSINC TURF의 Run 기능 시작 그림입니다. 구문이 유효한 경우

마지막으로

enter image description here

은 당신의 실행 기능은 oobj, 인수, superturf (

processcmd를 호출하여 지정된 인수에 모든 매개 변수를 매핑 유용한 뭔가를 작업자 함수를 호출 , vardict = spssaux.VariableDict())
은 extensions.py에서 가져 왔습니다.

도움말 시스템에서 확장 프로그램에 대한 문서를보고 예를 들어 Statistics와 함께 설치된 확장 프로그램 중 일부를 살펴보십시오.

마지막으로 사용자 입력에서 결과까지의 흐름을 요약 한 내 프레젠테이션의 슬라이드입니다.

enter image description here

+0

한 가지 다른 점 : 당신은 모든 구문 장치를 사용하지 않으려면, 당신은 SPSSINC 프로그램 확장 명령을 사용할 수 있습니다. 실행할 모듈/함수 이름과 Python 명령 줄 argv 구조체를 사용하여 인수를 제공합니다. 이것은 훨씬 간단하지만 전체 확장 메커니즘의 유효성 검사와 패키징을 얻지는 못합니다. 자세한 내용은 SPSSINC PROGRAM/HELP를 실행하십시오. – JKP