楼主: mengyuy
1378 3

求教关于批量导入和拆分的问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

69%

还不是VIP/贵宾

-

威望
0
论坛币
1108 个
通用积分
1.7931
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
4018 点
帖子
48
精华
0
在线时间
111 小时
注册时间
2012-9-19
最后登录
2024-3-27

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
1. 我用下列代码试图将一个文件夹下的所有csv文件导入sas

   x "dir D:\Data\*.csv > D:\Data\all";
   %macro import(name);
   proc import out=work.s&name
   Datafile = "D:\Data\111\csv"
   dbms=csv replace;
   run;
   %mend;
   data _null_;
   infile "D:\Data\111\all";
   input str:$100.;
   call execute(compress('%import('||scan(str,4,',')||');'));
   run;
quit;

但是报错  ERROR: Physical file does not exist   请问要如何处理?


2. 其次我用下列指令根据变量名拆分一个大数据成多个小数据集

data data.test;
        set data.spilttest;
        call execute ("data data.data_"||strip(put(_ric,$13.))||"_"||strip(put(date,yymmddn8.))||";set data.spilttest;if date="||date||" and _RIC="||'_ric'||";run;");
run;

但是在运行时总是说window is full and must be cleared 十分不方便,请问有什么好的处理方法么?
此外这个指令只按日期进行拆分,并没有同时按照_RIC(股票名)进行拆分,请问是什么部分有问题?

3.此外我还想请问下有没有什么方法可以将一段指令自动运行到多个数据集中?


二维码

扫码加我 拉你入群

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

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

关键词:批量导入 Physical compress EXECUTE replace replace import ERROR split

沙发
prince315 在职认证  发表于 2016-10-17 10:47:09 |只看作者 |坛友微信交流群
第一个问题:你将dir输出的结果输出到  D:\Data\all,但下一步导入的时候位置是D:\Data\111\all,故提示文件不存在,上一步的位置改成跟下面的一直即可;
第二个问题:_RIC="||'_ric'||,是不是这边'_ric'的引号造成的?因为不知道原始数据大概情况,难以判断,而且错误提示不太了解;
第三个问题:如果是一段指令运行在多个数据集中,不是特别理解,但是这个应该是可以用宏语句进行操作,比如讲该同一段语句放入宏中,在不同数据集中重复调用。

使用道具

藤椅
mengyuy 发表于 2016-10-17 19:20:38 |只看作者 |坛友微信交流群
prince315 发表于 2016-10-17 10:47
第一个问题:你将dir输出的结果输出到  D:\Data\all,但下一步导入的时候位置是D:\Data\111\all,故提示文件 ...
谢谢你的回答.我统一了前后指令如下,依然不行

   x "dir D:\Data\111\*.csv > D:\Data\111\all";
   %macro import(name);
   proc import out=work.s&name
   Datafile = "D:\Data\111\&name..csv"
   dbms=csv replace;
   run;
   %mend;
   data _null_;
   infile "D:\Data\111\all";
   input str:$100.;
   call execute(compress('%import('||scan(str,4,',')||');'));
   run;
quit;
结果是
结果.png

2. _ric是字符型变量,如"AXPB181203000.U" 或者 "AXPB181203700.U". 如果您有什么比较好的办法拆分数据集,也说下您的方法.我学习试验下

使用道具

板凳
prince315 在职认证  发表于 2016-10-18 09:57:57 |只看作者 |坛友微信交流群
第一个还是文件不存在,应该是你输出的文本解析不正确吧。
建议改成比如  x "dir D:\Data\111\*.csv \b \l > D:\Data\111\all"; 这样只输出文件名,也没有其他信息介绍内容,方便后续解析。

第二个,方法其实还是对的,应该就是ric这种字符中如果有些特殊字符等,就会造成错误发生。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 06:24