捕获输入值自定义对话框 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()