我需要你的帮助,最近我遇到了工作中的问题。我必须制作一个脚本,从第一个'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:对不起我的英语,我还在学习。
答案 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.