It can be done in a single-pass DATA step:
data have ;
input var1 var2 ;
cards ;
10 20
18 21
11 22
19 23
17 24
12 25
16 26
13 27
15 28
14 29
run ;
data want (drop = _:) ;
do until (z) ;
set have end = z ;
if var1 <= _max1 then continue ;
_max1 = var1 ;
_var2 = var2 ;
end ;
var1 = _max1 ;
var2 = _var2 ;
run ;
Kind regards
Paul D.
... View more