捕获输入值自定义对话框 SPSS 在 Python 程序中使用
Capturing Input Values Custom Dialog Box SPSS to use in Python program
我正在为 Python 中的自定义对话框编写扩展命令。但是,我无法从 CDB 的 UI 捕获输入变量。输入变量如下:
1. %%dep_variable%%
这是因变量的单变量选项
2.%%indep_variable%%
这是自变量的多变量选项
这是目前的代码。我正在打印自变量的回归系数。但是我 运行 遇到两个问题:
1.执行逻辑回归的行不能读取%%dep_var%%或%%indep_var%%。当我创建变量(dep_var 和 indep_var_list)并将 %%dep_var%% 或 %%indep_var%% 放在引号之间时也不是。我做错了什么?
2. 我无法迭代 %%indep_var%%,我应该如何转换 %%indep_var%% 以便它是我可以迭代的自变量列表?
BEGIN PROGRAM.
import spss,spssaux
dep_var="%%dep_var%%"
indep_var_list="%%indep_var%%"
cmd="LOGISTIC REGRESSION VARIABLES dep_var\
/METHOD=ENTER indep_var_list\
/CRITERIA=PIN(.05) POUT(.10) ITERATE(20) CUT(.5)."
handle,failcode=spssaux.CreateXMLOutput(
cmd,
omsid="LOGISTIC REGRESSION",
visible=False)
for i in indep_var_list:
result=spssaux.GetValuesFromXMLWorkspace(
handle,
tableSubtype="Variables in the Equation",
rowCategory= indep_var_list[i],
colCategory="B",
cellAttrib="text")
print "The coefficient is: ", result[0]
END PROGRAM
.
首先,您的 cmd 变量正在插入文字名称 dep_var 和 indep_var_list。您需要这些变量的值,因此在语法中它们应该写成 %%dep_var%% 等,或者命令应该写成使用变量替换,例如,
"""LOGISTIC ... VARIABLES %s ...""" % (dep_var ...)
其次,您的 indep_var_list 变量是单个字符串,而不是列表。您需要先转换它,例如
在dep_var_list = indep_var_list.split()
我正在为 Python 中的自定义对话框编写扩展命令。但是,我无法从 CDB 的 UI 捕获输入变量。输入变量如下:
1. %%dep_variable%%
这是因变量的单变量选项
2.%%indep_variable%%
这是自变量的多变量选项
这是目前的代码。我正在打印自变量的回归系数。但是我 运行 遇到两个问题:
1.执行逻辑回归的行不能读取%%dep_var%%或%%indep_var%%。当我创建变量(dep_var 和 indep_var_list)并将 %%dep_var%% 或 %%indep_var%% 放在引号之间时也不是。我做错了什么?
2. 我无法迭代 %%indep_var%%,我应该如何转换 %%indep_var%% 以便它是我可以迭代的自变量列表?
BEGIN PROGRAM.
import spss,spssaux
dep_var="%%dep_var%%"
indep_var_list="%%indep_var%%"
cmd="LOGISTIC REGRESSION VARIABLES dep_var\
/METHOD=ENTER indep_var_list\
/CRITERIA=PIN(.05) POUT(.10) ITERATE(20) CUT(.5)."
handle,failcode=spssaux.CreateXMLOutput(
cmd,
omsid="LOGISTIC REGRESSION",
visible=False)
for i in indep_var_list:
result=spssaux.GetValuesFromXMLWorkspace(
handle,
tableSubtype="Variables in the Equation",
rowCategory= indep_var_list[i],
colCategory="B",
cellAttrib="text")
print "The coefficient is: ", result[0]
END PROGRAM
.
首先,您的 cmd 变量正在插入文字名称 dep_var 和 indep_var_list。您需要这些变量的值,因此在语法中它们应该写成 %%dep_var%% 等,或者命令应该写成使用变量替换,例如,
"""LOGISTIC ... VARIABLES %s ...""" % (dep_var ...)
其次,您的 indep_var_list 变量是单个字符串,而不是列表。您需要先转换它,例如
在dep_var_list = indep_var_list.split()