以下程序是我在论坛的一个分享的PDF中看到的,但是在运行过程中出现问题。程序如下,出错的提示见红色字体。我想知道这个是怎么回事,如何修改?
第一步:初始数据集
•et.etdaily
–Firm:股票代码
–Date:交易日期
–Ret:日收益率
•et.eventdt
–Firm:股票代码
–evntDate:公告日期
•et.index
–Date:交易日期
–Mktret:市场组合收益率
第一步:为交易数据编号
Data etdaily1;
Set et.etdaily;
Run;
Proc sort data=etdaily1;
By firm date;
Run;
Data etdaily2;
Set etdaily1;
By firm;
If first.firm=1 then n=1;
Else n+1;
Run;
第一步:获得公告日的编号
Data edate1;
Set et.eventdt;
Date=evntdate;
Run;
Proc sort data=edate1;
By firm date;
Data m1(drop=date ret);
Merge etdaily2(in=a) edate1(in=b);
By firm date;
If a=1 and b=1;
Rename n=nid;
Run;
第一步:合并
假设M1中的每个事件样本都是不同的公司
Data m2;
Merge etdaily2(in=a) m1(in=b);
By firm;
If a=1 and b=1;
Run;
第一步:事件日
Data m3(drop=n nid);
Set m2;
Evtday=n-nid;
Run;
第一步:加入市场组合数据
Proc sort data=m3;
By date;
Proc sort data=et.index;
By date;
Data returns;
Merge m3(in=a) et.index(in=b);
By date;
If a=1 and b=1;
Run;
在运行到这一步的时候软件提示出错:ERROR: BY variables are not properly sorted on data set ET.INDEX.a=1 b=1 Firm=000037 Date=2004-07-28 Ret=-0.007843 evntDate=2004-07-14 Evtday=10 Mktret=0.006431FIRST.Date=0 LAST.Date=1 _ERROR_=1 _N_=7341