|
data a;
length date $12.;
input number $ date $ @;
cards;
600203 2012-01-01
600203 2012-01-15
600203 2012-01-25
600203 2012-01-28
600204 2012-01-14
600205 2012-01-04
600205 2012-01-19
600206 2012-01-03
600206 2012-01-13
600206 2012-01-28
600207 2012-01-05
600208 2012-01-09
;
run;
proc sort data=a out=b;
by number date;
run;
data c;
set b;
date=compress(cats(date),,"kd");
by number;
retain flag;
if first.number then flag=0;
flag+1;
if flag=1 then date1=date;
if flag=2 then date2=date;
if flag=3 then date3=date;
if flag=4 then date4=date;
run;
data d1(drop=date2 date3 date4 flag);
set c;
if date1^="";
run;
data d2(drop=date1 date3 date4 flag);
set c;
if date2^="";
run;
data d3(drop=date1 date2 date4 flag);
set c;
if date3^="";
run;
data d4(drop=date1 date2 date3 flag);
set c;
if date4^="";
run;
data d5;
merge d1 d2 d3 d4;
by number;
run;
data final;
set d5;
by number;
averagezhouqi=mean(of date1-date4);
ave=int(averagezhouqi);
format ave ddmmyy10.;
run;
看看行不行,不知道你具体要求的mean是什么情况。
|