使用语法更改SPSS中的值

时间:2014-05-19 14:06:16

标签: syntax spss

我需要你的帮助,最近我遇到了工作中的问题。我必须制作一个脚本,从第一个'1'出现'0'变为'1'。让我举个例子:

         | VAR1 | VAR2 | VAR3 | VAR4 | 

  ROW1   |  0   |  0   |  0   |  0   |  
  ROW2   |  0   |  0   |  1   |  0   |  
  ROW3   |  1   |  0   |  0   |  0   | 
  ROW4   |  0   |  1   |  0   |  0   |

必须转换为:

         | VAR1 | VAR2 | VAR3 | VAR4 | 

  ROW1   |  0   |  0   |  0   |  0   |  
  ROW2   |  0   |  0   |  1   |  1   |  
  ROW3   |  1   |  1   |  1   |  1   | 
  ROW4   |  0   |  1   |  1   |  1   |

我尝试使用这段代码,但这不起作用:

IF ( VAR1 EQ '1'){
  VAR2 = '1'
  VAR3 = '1'
  VAR4 = '1'
}.

IF ( VAR2 EQ '1'){
  VAR3 = '1'
  VAR4 = '1'
}.

IF ( VAR3 EQ '1'){
  VAR4 = '1'
}.

任何人都可以帮助我一点,我对SPSS的语法知之甚少。

提前致谢。

PS:对不起我的英语,我还在学习。

3 个答案:

答案 0 :(得分:1)

@djhurio的帖子几乎是正确的。但是你必须用var2开始do repeat过程。否则,当SPSS尝试计算MAX(var1 TO var1)时,您将收到错误。

DO REPEAT var = var2 TO var4.
   COMPUTE var = MAX(var1 TO var).
END REPEAT.
EXECUTE.

答案 1 :(得分:0)

我想我明白了。不仅仅是

if var1=1 var2=1.
if var2=1 var3=1.
if var3=1 var4=1.

你可以做到

do if var1=1.
compute var2=1.
compute var3=1.
compute var4=1.
else if var2=1 and var1 ne 1.
compute var3=1.
compute var4=1.
else if var3=1 and var2 ne 1 and var1 ne 1.
compute var4=1.
end if.

答案 2 :(得分:0)

使用DO REP - END REP的解决方案。

do rep var = var1 to var4.
comp var = max(var1 to var).
end rep.