[pre]
data a;
A='101';order=1;val=25;p=0;output;
A='101';order=2;val=54;p=0;output;
A='101';order=3;val=66;p=1;output;
A='101';order=4;val=85;p=1;output;
A='101';order=5;val=99;p=0;output;
A='101';order=6;val=120;p=0;output;
A='101';order=7;val=135;p=1;output;
A='101';order=8;val=170;p=1;output;
A='101';order=9;val=186;p=1;output;
A='101';order=10;val=190;p=1;output;
A='101';order=11;val=195;p=1;output;
run;
data temp;
set a;
retain flag 0;
if p ne lag(p) then flag+1;
run;
data result;
set temp;
by flag;
retain pre;
if first.flag then pre=val;
if last.flag and p then do;
Name='A';
Diff=catx('-',val,pre);
output;
end;
keep Name Diff;
run;
proc print;
run;
[/pre]
Ksharp
... View more