Оператор SPSS If с несколькими условиями

в синтаксисе 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 переменных! Еще хотелось бы, чтобы сценарий был кратким).

Есть рекомендации?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если все проверяемые переменные являются дихотомическими (например, 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. ниже конца повторить. Однако я хотел бы также отфильтровать все 4 или 7. может ли код включать это?

Jeremy Pan 30.05.2024 07:12

Что касается команды execute, см. объяснение Рубена

eli-k 30.05.2024 13:44

Что касается фильтрации четверок и семерок - это недостаточно ясно - вам следует начать новый вопрос с более полного объяснения того, что вам нужно, желательно с каким-нибудь примером с некоторыми данными и ожидаемыми результатами.

eli-k 30.05.2024 13:46

Другие вопросы по теме