DATA Step, Macro, Functions and more

Compare 2 rows

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 6
Accepted Solution

Compare 2 rows

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;

Output.JPG


Accepted Solutions
Solution
‎02-01-2018 07:03 AM
Frequent Contributor
Posts: 112

Re: Compare 2 rows

[ Edited ]
Posted in reply to Satish_Parida

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;

View solution in original post


All Replies
Frequent Contributor
Posts: 112

Re: Compare 2 rows

[ Edited ]
Posted in reply to pritish069
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*/
Occasional Contributor
Posts: 6

Re: Compare 2 rows

Posted in reply to Satish_Parida

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

 

Capture1.JPG

Solution
‎02-01-2018 07:03 AM
Frequent Contributor
Posts: 112

Re: Compare 2 rows

[ Edited ]
Posted in reply to Satish_Parida

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;
Super User
Posts: 13,942

Re: Compare 2 rows

Posted in reply to pritish069

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. 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 145 views
  • 1 like
  • 3 in conversation