options ls=80 mprint mlogic symbolgen spool ; data yamhead ; input a ; cards; 1 10 11 12 14 15 ; run; data iset (drop= diff asub i) ; set yamhead ; diff = a - lag1(a) ; b = a - diff ; * ( = lag1(a) ); k = a ; if (diff > 1) then do ; asub = a ; a = a - diff ; * set a equal to lag1(a); do i = 1 to (diff - 1) ; a = a + 1 ; output ; end; * end do i ; a = asub; end; * if diff ; output ; run; proc print data=iset ; run ;