в синтаксисе SPSS я пытаюсь создать фильтр, который указывает, что если все переменные равны 1, он будет возвращать сводную переменную, указывающую 1.
Я пробовал следующее в синтаксисе SPSS:
if (var1 TO var25 = 1 AND var29 TO var54 = 1) filtervar = 1.
дал мне следующую ошибку:
2937, если выражение содержит недопустимое или ненадлежащее использование Ключевое слово ТО. Ключевое слово TO может использоваться в выражениях MEAN, SUM и других выражениях. аналогичные функции вместо ввода отдельных имен переменных, но его нельзя использовать в других контекстах.
Я понимаю, что долгий путь - это написать:
if (var1 = 1 & var2 = 1 & var3 =1 ...) filtervar=1.
но это заняло бы слишком много времени (у меня 74 переменных! Еще хотелось бы, чтобы сценарий был кратким).
Есть рекомендации?





Если все проверяемые переменные являются дихотомическими (например, 0 или 1), то один из способов сделать это:
compute filtervar=1.
if any(0, var1 TO var25, var29 TO var54) filtervar=0.
(также compute filtervar=1 - any(0, var1 TO var25, var29 TO var54).)
Теперь, если есть другие возможные значения, нам нужно что-то более сложное. Один из способов — цикл по переменным:
compute filtervar=1.
do repeat vr=var1 TO var25 var29 TO var54.
if vr<>1 filtervar=0.
end repeat.
Обе возможности не учитывают пропущенные значения — если у вас есть пропущенные значения, вы должны определить, что должно произойти с filtervar в случае пропущенного значения в одной из переменных, и мы можем позаботиться об этом в синтаксисе.
Что касается команды execute, см. объяснение Рубена
Что касается фильтрации четверок и семерок - это недостаточно ясно - вам следует начать новый вопрос с более полного объяснения того, что вам нужно, желательно с каким-нибудь примером с некоторыми данными и ожидаемыми результатами.
Спасибо. Это сработало, когда я добавил EXECUTE. ниже конца повторить. Однако я хотел бы также отфильтровать все 4 или 7. может ли код включать это?