Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动脚本中的SPSS-Python函数_Python_Function_Spss - Fatal编程技术网

启动脚本中的SPSS-Python函数

启动脚本中的SPSS-Python函数,python,function,spss,Python,Function,Spss,接下来,我将尝试在Python中创建一个SPSS自定义函数,用于SPSS语法 我有一个语法很好的程序: begin program. import spss,spssaux, sys def CustomFunction (): #function code here CustomFunction() end program. 但是我希望CustomFunction()以“正常”的SPSS语法提供。标准语法不使用Python代码,也不向转换系统添加Python函数。如果您有

接下来,我将尝试在Python中创建一个SPSS自定义函数,用于SPSS语法

我有一个语法很好的程序:

begin program.

import spss,spssaux, sys

def CustomFunction ():
   #function code here   

CustomFunction()

end program.

但是我希望
CustomFunction()
以“正常”的SPSS语法提供。

标准语法不使用Python代码,也不向转换系统添加Python函数。如果您有一个Python模块,只需导入该模块即可直接使用其内容。而且不要担心多次导入,因为Python在忽略冗余导入方面很聪明

如果希望将Python代码用作常规语法,则需要创建一个扩展命令。它们具有标准样式的语法,但是用Python(或R或Java)实现的。其中有许多是随统计信息一起安装的,或者可以从Utilities菜单(或V24中的Extensions菜单)安装的。Python帮助文档和帮助系统中的相关主题中有关于如何编写这些文档的信息

例如,SPSSINC TRANS-extension命令将Python函数作为转换代码提供。比如说,如果CustomFunction创建或转换一个按大小写的变量,并存储在mymodule.py中,则可能会这样调用它

SPSSINC TRANS RESULT=newvar
/公式“mymodule.CustomFunction(x,y,z)”


当统计信息启动时,扩展命令会自动加载,因此不需要启动脚本。

然后,看起来我真正需要的是将CustomFunction()转换为扩展命令。编辑最初的帖子是为了让需求更加清晰如果只是一个转换,你可以使用TRANS。对于其他内容,您可以创建一个xml文件来定义语法:命令名、子命令、关键字类型和任何其他标记,然后使用统计信息中包含的extension.py模块来映射和验证该语法,并将其传递给代码。或者,您可以为其创建自定义对话框,并为语法创建帮助文件。通常将其打包为一个扩展包,以便易于安装,但至少需要xml文件和Python代码,这些代码可以复制到适当的位置。