楼主: tangb
2677 13

大家帮忙看看? 这个程序怎样传递变量? [推广有奖]

11
tangb 发表于 2009-9-8 18:57:02
再加码

12
horace_chen 发表于 2009-9-8 20:13:50
/*读取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凑合着修改吧~~

13
horace_chen 发表于 2009-9-8 20:17:57
3# fxf258

如果处理的公司总体相对固定的,建议LZ像3楼所说的,建议一个公司名称表,根据实际赋以唯一的代码,数据管理起来会比较方便。

14
tangb 发表于 2009-9-9 14:16:37
刚看到,我也跑通了一个,但一眼扫过去没有你的简练,让我细细揣摩一下。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 19:52