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.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.