2016-11-07 102 views
2

目前,我有以下的语法 -一个变量的遍历值来填充另一个变量 - 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的情况下长时间工作,但上面的代码根本不会改变输入文件。任何理由为什么这可能无法正常工作或以其他方式做到这一点?

+0

*它可以在没有Python使用的情况下长时间工作* < - 考虑向我们展示您的longhand语法吗?然后,在这里为你的脚本添加一个'print'语句并验证这两个语法字符串是否相等。我怀疑他们不会。 –

回答

1

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

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