var="a";output;
var="a";output;
var="a";output;
var="f";output;
var="f";output;
var="f";output;
var="f";output;
var="b";output;
var="c";output;
var="c";output;
run;
图为我想生成的数据集。
/*第一种方法直接写的if与else,其程序结果与我想要的结果一样,如图所示*/
data test1;
set test;
if var ne lag(var) then do;
retain i;
i=1;
end;
else i=i+1;
run;
/*第二种方法写的if else if ,其程序结果与方法一不同*/
data test3;
set test;
if var ne lag(var) then do;
retain i;
i=1;
end;
else if var = lag(var) then i=i+1;
run;
结果如下:
请问大神们,为什么结果不一致?导致第二种结果的原因是什么?不胜感激!