找了一个分析师样本,里面包含五位分析师对两个股票“601006”和“000012”的推荐,分别属于沪深两市。我的问题是程序如何自动提取每一条分析师荐股信息中的STKCD(股票代码)字段和t(荐股时间)字段,以此两条信息为依据,检索所有数据集,查询到对应的A200609.shl1_taq_601006_200609和A200609.szl1_taq_000012_200609高频数据集,并读入到work数据库中。(高频数据库由A200601,A200602,A200603,A200604,......等按月度逻辑库建立,当然如果为了简便也可以将其全部放在一个逻辑库里面,但那样可能太大。)以下宏程序供你参考,但还没有调试成功。
%macro good;
data _null_;
set analyst end=last;
if last;
call symput ('num',_n_);
run;
%do index=1 %to #
data _null_;
set analyst ;
if _n_=&index;
call symput ('code',stkcd);
t1=substr(rptdt,1,4);
t2=substr(rptdt,6,2);
date=compress(t1!!t2);
call symput ('date',date);
if substr(stdcd,1,1)='6' then %let list='shl1'; else %let list='szl1';
run;
data sampe1;
set &date..&list._taq_&code._&date;
/*--------*/
run;
%end;
%mend;
%good;