Подсчет данных с использованием синтаксиса SPSS

У меня есть следующий синтаксис SPSS для подсчета с использованием условного

DATASET ACTIVATE Conjunto_de_datos1.
DO IF  (((p7_1 = 1) | (p7_2 = 1)) & (periodo = 2)).
COUNT noque_o_noria=p7_2 p7_1(1).
END IF.
EXECUTE.

данные следующие

p7_1    p7_2    periodo
1   1   2
1   0   2
1   1   2
1   1   1
1   1   1
0   1   2

У меня проблема в том, что в новом столбце каждой строке, соответствующей правилу, автоматически присваивается значение 2, а те, которые не соответствуют правилу, теряются (пустые). Что я должен добавить к приведенному выше коду, чтобы получить 1, когда он соответствует правилу, и 0, если нет?


person richardtk_1    schedule 29.08.2013    source источник
comment
Это не статистический вопрос, а также он требует примера данных.   -  person ttnphns    schedule 29.08.2013


Ответы (3)


В команде COUNT нет смысла, поэтому вместо нее можно использовать COMPUTE noque_o_noria = 1, а затем указать условие ELSE, например

DO IF  (((p7_1 = 1) | (p7_2 = 1)) & (periodo = 2)).
  COMPUTE noque_o_noria = 1.
ELSE.
  COMPUTE noque_o_noria = 0.
END IF.
person Andy W    schedule 29.08.2013

Вам не нужно так много синтаксиса, чтобы сделать это. Просто

compute noque_o_noria=(p7_2 = 1 or p7_1 = 1) and periodo = 2.

Сделаю.

person RubenGeert    schedule 10.09.2013

Я подозреваю, что переменная периодо была определена ранее, и DO IF оставляет старые значения без изменений.

Если переменная новая, то случаи, пропущенные DO IF, будут иметь значение sysmis. Для случаев, которые обрабатываются функцией COUNT, переменная инициализируется нулем для каждого случая.

person JKP    schedule 29.08.2013