SPSS:RECODE难度

时间:2014-02-14 08:32:56

标签: spss statistics

据我所知,IF在用于执行单个条件转换时效率更高。 对于定义条件的多个IF语句,使用RECODE命令通常更有效。

我在SPSS中有以下命令:

IF (EDUC>12 AND GENDER='M')GROUP=1.
IF (EDUC<12 AND GENDER='M')GROUP=2.
IF (EDUC>12 AND GENDER='F')GROUP=3.
IF (EDUC<12 AND GENDER='F')GROUP=4.
EXECUTE.

现在我尝试将上述命令记录为:

COMPUTE GROUP = 0
RECODE GROUP (EDUC>12 AND GENDER='M'=1)(EDUC<12 AND GENDER='M'=2)(EDUC>12 AND GENDER='F') (EDUC<12 AND GENDER='F').
EXECUTE.

但它显示错误。

我如何重新编码上述命令?还是可以重新编码?

1 个答案:

答案 0 :(得分:1)

RECODE只接受1到1的映射,旧值接受新值,它不接受您指定的条件语句。在这种情况下,您可能会考虑DO IF阻止。 (希望没有人有12个教育!)

DO IF (EDUC>12 AND GENDER='M').
  COMPUTE GROUP=1.
ELSE IF (EDUC<12 AND GENDER='M').
  COMPUTE GROUP=2.
ELSE IF (EDUC>12 AND GENDER='F').
  COMPUTE GROUP=3.
ELSE IF (EDUC<12 AND GENDER='F').
  COMPUTE GROUP=4.
END IF.

这会逐个评估IF语句,因此,如果您有100万条记录属于(EDUC>12 AND GENDER='M')而只有少数记录属于其他类别,那么对于这百万个案例,它会评估第一个条件为true,不会评估后续的IF语句(在多行上写出等效的IF不正确)。