## Compare 2 rows

Solved
Occasional Contributor
Posts: 6

# 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.

``````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;``````

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

## Re: Compare 2 rows

[ Edited ]

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;``````

All Replies
Frequent Contributor
Posts: 112

## Re: Compare 2 rows

[ Edited ]
``````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

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

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

## Re: Compare 2 rows

[ Edited ]

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

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.