Как проверить, существует ли переменная - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужно запустить синтаксис SPSS в операторе IF, который проверяет, существует ли переменная в документе.У меня проблемы с получением правильного теста.Я пытаюсь сделать это:

do if (test if myVariable exists).
// execute code here
end if.
Execute.

Я посмотрел здесь и попробовал это:

DO IF (myVariable) exist=1.
END IF.
Execute.

Но я получаю ошибку "Есть постороннийтекст, следующий за логическим выражением команды DO IF.Я неправильно понял код?

1 Ответ

0 голосов
/ 26 сентября 2018
Команда

spssinc select variables создает список переменных в соответствии с указанными свойствами.В этом случае свойство будет переменной с именем «MyVar».Если переменная не существует, список останется пустым:

spssinc select variables macroname="!findMyVar" /properties pattern="MyVar".

Теперь мы определим макрос, который будет запускать некоторые команды, только если приведенный выше список не пуст:

define doifMyVarexists ()
!if (!eval(!findMyVar)<>"") !then
  * put your commands here, like following examples.
  compute MyVar=MyVar*2.
  freq MyVar.
!ifend
!enddefine.

* the macro is ready, now we call it:
doifMyVarexists.

Если вы запустите это несколько раз, вы столкнетесь с проблемой, что если MyVar существует один раз, а в последующем не существует - список не очищается (он только перезаписывается, если в него были добавлены переменные).Чтобы решить эту проблему, используйте следующую строку, чтобы очистить список перед повторным запуском select variables:

define !findMyVar() !enddefine.
...