语法在SPSS中使用recode命令时出错

时间:2016-10-01 06:11:29

标签: spss

DO IF  (WB4 = 1). 
    RECODE WB5 (0=0) (1=1) (2=2) (3=3) (4=4) (5=5) INTO WB5_1.
    IF  (WB4 = 2). 
    RECODE WB5 (0=5) (1=6) (2=7) (3=8) INTO WB5_1. 
    IF  (WB4 = 3). 
    RECODE WB5 (0=8) (1=9) (2=10) INTO WB5_1. 
    IF  (WB4 = 4). 
    RECODE WB5 (0=10) (1=11) (2=12) (3=13) (4=14) (5=15) (6=16) (7=17) INTO WB5_1. 
END IF. 
EXECUTE.

我正在尝试使用多个选项开发一个新变量,方法是连接两个变量的选项以创建一个新变量。请指导我,我有一个错误。

2 个答案:

答案 0 :(得分:1)

如果出现错误,您应该发布包含问题的错误消息。

在这种情况下,问题可能是使用IF语句而不是pf DO IF IF只采用像compute这样的简单语句。而是使用 DO IF条件。
RECODE ...
结束如果。

答案 1 :(得分:0)

正如JKP所指出的那样,不发布错误会使完全调试语法变得有点困难。

有人认为我可以告诉你的是你明显错过了使用IF命令:它需要有2个参数:

IF [condition] [transformation].

你只有条件,然后是RECODE命令; IF不起作用。 可以DO IF END IF结构中工作,但您需要提供这两个参数。

或者,您可以使用IF ELSE IF END IF结构(您只需要在当前语法中添加“else”:

DO IF  (WB4 = 1). 
    RECODE WB5 (0=0) (1=1) (2=2) (3=3) (4=4) (5=5) INTO WB5_1.
    ELSE IF  (WB4 = 2). 
    RECODE WB5 (0=5) (1=6) (2=7) (3=8) INTO WB5_1. 
    ELSE IF  (WB4 = 3). 
    RECODE WB5 (0=8) (1=9) (2=10) INTO WB5_1. 
    ELSE IF  (WB4 = 4). 
    RECODE WB5 (0=10) (1=11) (2=12) (3=13) (4=14) (5=15) (6=16) (7=17) INTO WB5_1. 
END IF. 
EXECUTE.