2016-11-07 7 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を使わずに長時間働いた* < - 長文の構文を教えてください。次に、スクリプトに 'print'文を追加して、両方の構文文字列が同等であることを確認します。私は彼らがそうでないと思う。 –

答えて

1

varstringは空白で結合された整数の文字列になります。したがって、IFのテスト条件は決して満たされません。したがってQ4_2_FULLは決して投入されません。あなたはこれを見るためにあなたが提出しているコマンドを印刷することができます。

あなたの望む結果が正確ではありませんが、送信しているIFコマンドがデータセット全体で実行されることに注意してください。