Hi everybody there is two code which are acting differently. can anybody explain why? Hint: Lag function puls from queue!! According to me they must procedure the same result!!! data test; INFILE datalines DLM=',' DSD; input a b c ; datalines; 4272451,17878,17878 4272451,17878,17878 4272451,17887,17887 4272454,17878,17878 4272454,17881,17881 4272454,17893,17893 4272455,17878,17878 4272455,17878,18200 run; DATA TEST1; RETAIN F ( 1) ; laga = lag(a); lagb=lag(b); SET TEST; IF A^=laga OR laga =. THEN do; f=1;end; ELSE IF A=laga AND b>lagb THEN do; f=f+1 ; end; RUN; proc print data=test1; run; DATA TEST2; RETAIN F ( 1) ; SET TEST; IF A^=LAG(A) OR LAG(A)=. THEN do; f=1;end; ELSE IF A=LAG(A) AND b>LAG(B) THEN do; f=f+1 ; end; RUN; proc print data=test2; run;
... View more