2016-11-07 40 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命令將在整個數據集上執行。