楼主: 弈剑风雨
2643 2

SAS批量导入时规定输入输出格式 [推广有奖]

  • 0关注
  • 1粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
538 个
通用积分
0.0758
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
9513 点
帖子
131
精华
0
在线时间
645 小时
注册时间
2013-10-13
最后登录
2021-11-26

楼主
弈剑风雨 学生认证  发表于 2015-3-25 09:03:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,现在我的一个文件夹里有几十个csv文件,他们的命名都是一样的,只是后缀的数字不同。表单里变量也是一样的,我想用宏程序一下子就导进去。但是用import这个语句不能规定输入输出格式。所以想请教各位论坛中的大神,看能不能给我一段批量导入的宏程序,而且能够规定输入输出格式。拜谢!
二维码

扫码加我 拉你入群

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

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

关键词:批量导入 输出格式 import Port 宏程序 import 文件夹 程序 而且 命名

沙发
sushe1527 发表于 2015-3-25 09:39:43
  1. options noxwait;

  2. *指定数据文件所在的目录;
  3. %let path=f:\tmp\;
  4. *指定输出数据集前缀;
  5. %let OutPrefix=Mydata;

  6. x "dir &path /b > fname.txt";

  7. *导入xls数据的宏;
  8. %macro importdata(filename,ith);

  9. %let fposfix=%sysfunc(reverse(%substr(%sysfunc(reverse(&filename)),1,%sysfunc(min(%length(&filename),4)))));
  10. %let fposfix=%upcase(&fposfix);
  11. proc import datafile="&path.&filename" out=&OutPrefix.&ith
  12.    dbms=
  13.           %if &fposfix=%str(.XLS) %then EXCEL;
  14.    %else %if &fposfix=%str(.TXT) %then TAB;
  15.    %else %if &fposfix=%str(.CSV) %then CSV;
  16.    %else %if &fposfix=%str(.MDB) %then ACCESS;
  17.    %else %if &fposfix=%str(.DBF) %then DBF;
  18.    replace;
  19.    getnames=yes;
  20.    delimiter=' ';
  21. run;
  22.   *以下三行语句是合并所有数据集,条件要求:数据集变量结构一致;
  23. data all;
  24.    set %if &ith ne 1 %then all; &OutPrefix.&ith;
  25. run;
  26. %mend;

  27. %mend;

  28. *导入所有数据文件;
  29. data _null_;
  30. infile "fname.txt";
  31. input filename & $100.;
  32. *执行宏,只导入指定格式的数据文件;
  33. FNFIX=UPCASE(REVERSE(SUBSTR(LEFT(REVERSE(FILENAME)),1,4)));
  34. IF  FNFIX IN (".XLS",".TXT",".MDB",".DBF",".CSV")
  35. THEN call execute('%importdata(' || trim(filename) || ',' || _n_ || ')');
  36. run;

复制代码

藤椅
弈剑风雨 学生认证  发表于 2015-3-25 11:28:58
sushe1527 发表于 2015-3-25 09:39
谢谢!但是这段程序只能导入啊,import不能规定导入变量的输入和输出格式啊

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 01:54