循环遍历一个变量的值以填充另一个变量 - SPSS

时间:2016-11-07 12:31:09

标签: python spss

我目前有以下语法 -

BEGIN PROGRAM.
import spss,spssdata
varlist = [element[0] for element in spssdata.spssdata('CARD_2_Q2_1_a').fetchall()]
varstring = " ".join(str(int(i)) for i in varlist)
spss.submit("if (Q4_2 = 2 AND CARD_2_Q2_1_a = %(varstring)s) Q4_2_FULL = %(varstring)s." %locals())
END PROGRAM.

我认为这只会遍历变量CARD_2_Q2_1_a中的值,并在适当的位置填充Q4_2_FULL。它在没有使用Python的情况下长时间工作,但上面的代码根本不会改变输入文件。为什么这可能不起作用或者另外一种方法呢?

1 个答案:

答案 0 :(得分:1)

varstring将是由空格连接的整数字符串。因此,IF中的测试条件永远不会得到满足。因此永远不会填充Q4_2_FULL。您可以打印出要提交的命令以查看此内容。

我不确定您想要的结果是什么,但请记住,您提交的IF命令将在整个数据集上执行。