|
/*读取CSV文件个数*/
data _null_;
rc=filename("mydir","physical-name");/*physical-name为CSV文件所在文件夹的地址*/
did=dopen("mydir");
filecount=dnum(did);
rc=dclose(did);
call symput("filecount",filecount);
run;
%macro company_seperation ;
%do CSVnum=1 %to &filecount;
data data.sample&CSVnum;
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;
/*第CSVnum个CSV文件中全部公司名称与序号*/
proc sql noprint;
create table companyName&CSVnum as
select distinct ric from sample&CSVnum;
quit;
data companyName&CSVnum;
set companyName&CSVnum;
n+1;
run;
proc sql noprint;
select count(*) into :companyCount from companyName&CSVnum;
quit;
/* 第CSVnum个CSV文件的全部公司单独输出数据集*/
%do COMnum=1 %to &companyCount;
proc sql noprint;
create table CSV&filecount.Comp&COMnum as
select * from sample&CSVnum
where ric contains
(select ric from companyName&CSVnum where n=&COMnum)
quit;
%end;
%end;
%mend;
没数据测试,LZ凑合着修改吧~~
|