用python为SPSS创建扩展

2024-09-30 19:31:07 发布

您现在位置: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文件:

^{pr2}$

但是,当调用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.

Tags: inimport脚本fordefrangevariablesall
1条回答
网友
1楼 · 发布于 2024-09-30 19:31:07

对于可以用Python、R或Java编写的扩展,需要创建一个语法规范,其中包含命令名、任何子命令以及所需的参数和参数类型。这是一张图片的开始(SPSSINC_TURF,安装了统计数据)。 enter image description here

这将指导统计分析程序检查用户输入。然后它还调用包含用户输入的复杂结构的Run函数。您可以使用extensions模块中的函数将其映射到Python变量并进行进一步的验证。下面是SPSSINC TURF的Run函数开始的图片。在

enter image description here

最后,如果语法有效,Run函数调用worker函数来做一些有用的事情,通过调用将所有参数映射到指定的参数

processcmd(oobj、args、superturf、vardict=spssaux.VariableDict软件包())
它是从扩展名.py. 在

查看帮助系统中扩展的文档,并查看一些随统计信息安装的扩展示例。在

最后,这是我演讲中的一张幻灯片,总结了从用户输入到结果的流程。在

enter image description here

相关问题 更多 >