楼主: 峰启云咏
4311 2

SAS 导入文件夹下所有文档的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
975 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
2
精华
0
在线时间
7 小时
注册时间
2015-2-6
最后登录
2020-2-23

楼主
峰启云咏 发表于 2016-1-11 19:03:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有一段导入文件夹下所有文档程序如下:
%macro mReadfolder;

%let filrf=mydir;
%let rc=%sysfunc(filename(filrf,"F:\Mechanicalfailuresummary\csvFiles"));  
%let did=%sysfunc(dopen(&filrf));  
%let lstname=b;  
%let memcount=%sysfunc(dnum(&did));  

%if &memcount > 0 %then  
        %do i=1 %to &memcount;  
        %let lstname=%sysfunc(dread(&did,&i));

                proc import out=a
                datafile= "F:\Mechanicalfailuresummary\csvFiles\&lstname"
                dbms=csv replace;
                run;

        %end;

%let rc=%sysfunc(dclose(&did));

%mend mReadfolder;
%mReadfolder;

运行结果只能导入文件夹下一个文件的内容,而不是所有的。日志报错如下:
informat VAR1 anydtdtm40. ;
51                informat w002_CI_GbLubOilFilterInletPre best32. ;
52                format VAR1 datetime. ;
53                format w002_CI_GbLubOilFilterInletPre best12. ;
54             input
55                         VAR1
56                         w002_CI_GbLubOilFilterInletPre
57             ;
58             if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
59             run;

NOTE: INFILE 'F:\Mechanicalfailuresummary\csvFiles\w002_CI_GbLubOilFilterInletPre.csv' 是:
      文件名=F:\Mechanicalfailuresummary\csvFiles\w002_CI_GbLubOilFilterInletPre.csv,
      RECFM=V,LRECL=32767,文件大小(字节)=8558710,
      上次修改时间=2016年01月04日 15时24分11秒,
      创建时间=2016年01月08日 21时37分13秒

NOTE: 在第 259355 行、第 3-25 列中有对“w002_CI_GbLubOilFilterInletPre”无效的数据。
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0                     
259355     ,此次查询总耗时 515 毫秒 25
VAR1=. w002_CI_GbLubOilFilterInletPre=. _ERROR_=1 _N_=259354
NOTE: 从 INFILE 'F:\Mechanicalfailuresummary\csvFiles\w002_CI_GbLubOilFilterInletPre.csv' 中读取了 259354 条记录。
      最小记录长度是 25。
      最大记录长度是 31。
NOTE: 数据集 WORK.A 有 259354 个观测和 2 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.34 秒
      CPU 时间          0.34 秒


Errors detected in submitted DATA step. Examine log.
259354 rows created in WORK.A from F:\Mechanicalfailuresummary\csvFiles\w002_CI_GbLubOilFilterInletPre.csv.



ERROR: 导入失败。详细信息,请参阅“SAS 日志”。
NOTE: 由于出错,SAS 系统停止处理该步。
NOTE: “PROCEDURE IMPORT”所用时间(总处理时间):
      实际时间          0.39 秒
      CPU 时间          0.39 秒

二维码

扫码加我 拉你入群

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

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

关键词:导入文件 文件夹 Mechanical detection Procedure 文件夹

沙发
孤单的我们 发表于 2016-1-12 09:21:18
proc import out=a
                datafile= "F:\Mechanicalfailuresummary\csvFiles\&lstname"
                dbms=csv replace;
run;

这个只把最后一个表导入了,之前的都被replace掉了吧?

藤椅
邹--zjd 发表于 2016-1-12 10:15:36
提示错误的那个表源数据格式有问题吧
NOTE: 在第 259355 行、第 3-25 列中有对“w002_CI_GbLubOilFilterInletPre”无效的数据。

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

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