1

我有以下 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?

4

3 回答 3

2

你不需要这么多的语法来做到这一点。只是

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

会做。

于 2013-09-10T14:20:54.843 回答
1

该命令没有意义COUNT,因此您可以使用 aCOMPUTE 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.
于 2013-08-29T18:14:13.107 回答
1

我怀疑之前定义了 periodo 变量,并且 DO IF 保持旧值不变。

如果变量是新变量,则 DO IF 绕过的案例将具有 sysmis 值。对于由 COUNT 处理的案例,每个案例的变量都初始化为零。

于 2013-08-29T20:23:20.570 回答