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.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.