macro company_sepereation (filenumber,filename);
%do number=16 % to &filenumber;
/*程序中间的 data16 都是手工改的,一共改了16次。*/
data data16.sample;
informat
RIC $9.
date date10. /* $10. ddmmyy10.*/
Time $10./* time10.1 */
M 4. type $5.
price 4. Bidprice 4. askprice 4. QUALIFIERS $29.
;
infile "D:\Copy of data\data16\&filename&number..csv" firstobs=2 missover dsd;
input RIC $ DATE $ Time $ M type $ PRICE BIDPRICE Askprice QUALIFIERS $@;
run;
/*按照公司代码,编上顺序号*/
proc sort data=data16.sample;
by ric;
run;
data data16.sample1;
set data16.sample;
by ric;
if first.ric=1 then do;
companynum+1;
output data16.sample1 ;
end;
else do
companynum=companynum;
output data16.sample1;
end;
run;
/*通过形成每个公司摘一条记录的方法,形成一个计数数据集*/
data data16.samplecompanycount;
set data16.sample1;
by companynum;
if first.companynum=1;
run;
data _null_;
set data16.samplecompanycount end=last;
if last then do;
/*输出这个计数,以便我可以手工利用这个计数*/
put _n_=;
end;
run;
%end; %mend ;
%macro sites (data=, var=);
proc sort data=&data(keep=&var)
out=values nodupkey;
by &var;
run;
data _null_;
set values end=last;
call symputx('site'||left(_n_),location);
if last then call symputx('count',_n_);
run;
%put _local_;