2016-11-07 4 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, которую вы отправляете, будет выполняться по всему набору данных.