使用 python 为 SPSS 创建扩展
creating extension for SPSS with python
所以我发现了 SPSS 的 python 扩展,一切正常,我现在创建了一些脚本并将它们包含在扩展映射中,并且工作正常。然而,现在我已经创建了几个需要参数的脚本,我想我可以只使用相同的方法,但我想不行。
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
使用以下 .xml-文件:
<Command xmlns="http://xml.spss.com/extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="testing_p" Language="Python">
</Command>
然而,这在调用 testing_p(['my_var', 'my_var2']) 时一直抛出错误:
Warnings
This command should specify a valid subcommand at the beginning.
Execution of this command stops.
我无法解决这个问题,因为当不放入扩展映射时一切正常,只做:
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.
对于可以用 Python、R 或 Java 编写的扩展,您需要创建包含命令名称、任何子命令以及参数和参数类型的语法规范你要。这是一个开始的图片(SPSSINC_TURF,它与 Statistics 一起安装)。
这将指导统计分析器检查用户输入。然后它还会调用包含用户输入的复杂结构的 运行 函数。您可以使用扩展模块中的函数将其映射到您的 Python 变量并进行进一步验证。这是 SPSSINC TURF 运行 函数启动的图片。
最后,如果语法有效,您的 运行 函数将调用 worker 函数来做一些有用的事情,通过调用
将所有参数映射到指定的参数
processcmd(oobj, args, superturf, vardict=spssaux.VariableDict())
这是从 extensions.py.
导入的
查看帮助系统中的扩展文档,并查看一些随 Statistics 安装的扩展的示例。
最后,这是我的一个演示文稿中的一张幻灯片,总结了从用户输入到结果的流程。
所以我发现了 SPSS 的 python 扩展,一切正常,我现在创建了一些脚本并将它们包含在扩展映射中,并且工作正常。然而,现在我已经创建了几个需要参数的脚本,我想我可以只使用相同的方法,但我想不行。
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
使用以下 .xml-文件:
<Command xmlns="http://xml.spss.com/extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="testing_p" Language="Python">
</Command>
然而,这在调用 testing_p(['my_var', 'my_var2']) 时一直抛出错误:
Warnings
This command should specify a valid subcommand at the beginning.
Execution of this command stops.
我无法解决这个问题,因为当不放入扩展映射时一切正常,只做:
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.
对于可以用 Python、R 或 Java 编写的扩展,您需要创建包含命令名称、任何子命令以及参数和参数类型的语法规范你要。这是一个开始的图片(SPSSINC_TURF,它与 Statistics 一起安装)。
这将指导统计分析器检查用户输入。然后它还会调用包含用户输入的复杂结构的 运行 函数。您可以使用扩展模块中的函数将其映射到您的 Python 变量并进行进一步验证。这是 SPSSINC TURF 运行 函数启动的图片。
最后,如果语法有效,您的 运行 函数将调用 worker 函数来做一些有用的事情,通过调用
将所有参数映射到指定的参数processcmd(oobj, args, superturf, vardict=spssaux.VariableDict())
这是从 extensions.py.
查看帮助系统中的扩展文档,并查看一些随 Statistics 安装的扩展的示例。
最后,这是我的一个演示文稿中的一张幻灯片,总结了从用户输入到结果的流程。