这个应该满足你的要求,就是麻烦点
data test;
newtype='H';
n=_n_;
input type $1. @;
if type='H' then
do;
total=0;
input address $3-17;
retain total address;
end;
else if type='P' then total+1;
cards;
H zd2
H sdf
P mark
P mark
H a21a
P mark
H a21z
P mark
P mark
P mark
H a21sdf
;
run;
proc print data=test; run;
proc sort data=test out=a;
by address;
run;
data aa;
set a;
by address;
if last.address;
proc sort data=aa;
by n;
proc print data=aa; run;
data aaa;
set aa;
drop n type;
rename newtype=type;
proc print data=aaa; run;