Вычислить, если l oop SPSS - PullRequest
2 голосов
/ 16 июня 2020

В конечном счете, я хочу изменить оценку с 0 на 1, с 1 на 2 и с 2 на 3. Я думал, что одним из способов сделать это было использование +1, но я понимаю, что могу использовать и более сложный if then series.

Вот что я сделал до сих пор: я использовал существующую переменную (x) для создания новой переменной (y = x + 1) с использованием синтаксиса SPSS. Я хочу сделать это только для переменных со значениями> = 0 (это был мой подход к исключению ячеек с отсутствующими данными; диапазон для x равен 0-2).

Я могу создать x + 1, но он перезаписывает существующие переменные.

DO REPEAT x =var_1 TO var_86.
if (x>=0) x=(x+1).
end repeat.
exe.

Я пробовал эту модификацию, но она не работает:

DO REPEAT x = var_1 TO var_86 / y = var_1a TO var_86a.
IF  (x >= 0) y=x +1.
END REPEAT.
EXE.

Сообщение об ошибке:

DO REPEAT Форма VARX TO VARY для ссылки на диапазон переменных была использована неправильно. При использовании VARX TO VARY для создания новых переменных, X должно быть целым числом, меньшим или равным целому числу Y (нельзя использовать A3 TO A1.)

Я пробовал много других конфигураций, включая векторы и циклы, но еще не выяснили, как выполнить это вычисление для диапазона переменных, не перезаписывая существующие. Заранее благодарим за любые рекомендации.

1 Ответ

1 голос
/ 16 июня 2020

Сообщение, которое вы получаете, связано с тем, что SPSS не понимает форму var_1a TO var_86a.
Чтобы форма x to y работала, номер должен стоять в конце имени, например, varA_1 to varA_86 должно работать.
Пока вы занимаетесь этим, вот простой способ go о вашей задаче:

recode var_1 TO var_86 (0=1)(1=2)(2=3) into varA_1 TO varA_86.
...