全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8806 11
2012-11-17
悬赏 5 个论坛币 未解决
按照论坛里一位高手的帖子,我想利用下面的方法批量读取文件夹中的csv文件:
filename indata pipe "dir D:\*.csv /b";
data file_list;
length fname $20;
infile indata truncover end=last;
input fname $20.;
call symput ('num_files',_n_);
fnamefst=scan(fname,1,'.');
run;


但是log中显示出了错:
NOTE: Infile INDATA 是:      未命名的管道访问设备,      PROCESS=dir &inpathceic.*csv /b,RECFM=V,      LRECL=256
Stderr output:磁盘空间不足。NOTE: 从 Infile INDATA 中读取了 0 条记录。/*该文件夹下本来有19个文件的*/


我不知道问题出在哪里了,求赐教!!





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-17 21:16:51
自顶~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-17 22:58:15
试试这种方法:

x "dir d:*.csv /b > d:all.txt";
%macro dr(name) ;
proc import out=&name
                        datafile="d:&name..csv"
                        dbms=csv replace;
                        getnames=no;
run;
%mend dr;
data _null_;
        infile "d:all.txt";
        input str:$100.;
        call execute(compress('%dr('||scan(str,1,'.')||')'));
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-18 12:17:25
   /*Pls try the codes below*/
    filename p_dir pipe "dir I:\fold\*.csv /b " lrecl=32767;
     data filenames;
     infile p_dir truncover;
     input fname $char1000.;
    run;


NOTE: The infile P_DIR is:
      Unnamed Pipe Access Device,
      PROCESS=dir I:\fold\*.csv /b,RECFM=V,
      LRECL=32767

NOTE: 3 records were read from the infile P_DIR.
      The minimum record length was 6.
      The maximum record length was 6.
NOTE: The data set WORK.FILENAMES has 3 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.08 seconds
      cpu time            0.02 seconds


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-16 11:01:30
ls,请问为何我的结果是
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-16 13:50:49
freetiger666 发表于 2013-1-16 11:01
ls,请问为何我的结果是
我觉得我们的问题都出在了  filename p_dir pipe "dir I:\fold\*.csv /b " lrecl=32767;这句上,pipe指定的内容没有被正确读入。这也是后面提醒中“NOTE: 从 Infile P_DIR 中读取了 0 条记录。”的原因。
试一下二楼的方法吧,如果你的程序不是后面需要频繁使用宏变量的话
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群