I want to compare 2 rows. i have 2 variables i and i1, i1 increments by 1 in do while loop and if then statement compare i and i1 compares and should give results result variable as 1 for whichever row is greater but i am not getting the results displayed.
Thank you in advance
data t;
infile datalines dlm="," dsd missover;
input i;
datalines;
2
3
4
5
;
run;
data t1;
set t;
i1=1;
do while (i le last.i);
if i < i1 then put result = 1;
else result = 0;
end;
i1 = i + 1;
run;
Correction:
data t;
infile datalines dlm="," dsd missover;
input i;
datalines;
2
3
4
5
;
run;
data t1;
set t;
i1 = i + 1;
if i < i1 then /*put*/ result = 1;
else result = 0;
run;
data t;
infile datalines dlm="," dsd missover;
input i;
datalines;
2
3
4
5
;
run;
data t1;
set t;
i1 = i + 1;
if i < i1 then put result = 1;
else result = 0;
run;
/*This will work now. You do not need a loop to get increament, SAS
Datastep it self is a loop, Advisable to use it always*/
Thank you for your advise but the result variable is still not giving output, i need the result variable to display 1 if the i1 is greater else display 0
Correction:
data t;
infile datalines dlm="," dsd missover;
input i;
datalines;
2
3
4
5
;
run;
data t1;
set t;
i1 = i + 1;
if i < i1 then /*put*/ result = 1;
else result = 0;
run;
Is the variable i ever missing? Is i1 ever missing? If these can be yes you need to consider what result to you want for
i missing and i1 not missing
i not missing and i1 missing
both missing.
You should be aware that missing is less than any value (except missing) so you have the possibility of have a result that you really don't want.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.