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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: