楼主: deem
3490 0

[程序分享] 将csv文件批量转为SAS文件[SAS code] [推广有奖]

  • 2关注
  • 43粉丝

学科带头人

51%

还不是VIP/贵宾

-

威望
0
论坛币
7022 个
通用积分
1027.0870
学术水平
215 点
热心指数
237 点
信用等级
205 点
经验
71652 点
帖子
979
精华
0
在线时间
2998 小时
注册时间
2009-7-30
最后登录
2024-4-9

楼主
deem 学生认证  发表于 2017-8-16 03:41:35 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
经常做的一件事情是将其他文件批量转化为sas文件。这个task也比较能够体现利用 macro list完成循环,或者说是对SAS的行进行循环操作。
代码分享:





  1. ***************************************************************;
  2. * 将csv文件批量转为SAS文件:
  3.                 将csmar中股票日交易的28个csv文件合并成一个SAS文件
  4. ***************************************************************;

  5. libname out "C:\Users\dsf";         /* 输出数据的目录 */

  6. * 第4列数据是待循环的文件目录列表;
  7. data temp (keep=file);
  8.         input dir $ date $ time $ file $;
  9. datalines;
  10.   <dir>   1/16/17  0:21  12gkzzxx         
  11.   <dir>   1/16/17  0:21  3b1t3qw2         
  12.   <dir>   1/16/17  0:21  a3yeqmqd         
  13.   <dir>   1/16/17  0:21  blkqdh2n         
  14.   <dir>   1/16/17  0:21  cdfnkvaw         
  15.   <dir>   1/16/17  0:21  eovbprla         
  16.   <dir>   1/16/17  0:21  fyoncmrb         
  17.   <dir>   1/16/17  0:21  gnkjxu14         
  18.   <dir>   1/16/17  0:21  gx3wcteu         
  19.   <dir>   1/16/17  0:21  hgpu1q0a         
  20.   <dir>   1/16/17  0:21  itulofqs         
  21.   <dir>   1/16/17  0:21  jmt2sfes         
  22.   <dir>   1/16/17  0:21  lwhbt2a4         
  23.   <dir>   1/16/17  0:21  oq21vpiy         
  24.   <dir>   1/16/17  0:21  ovavtb01         
  25.   <dir>   1/16/17  0:21  pfcrlumc         
  26.   <dir>   1/16/17  0:21  qamldgj5         
  27.   <dir>   1/16/17  0:21  qgyqrcu0         
  28.   <dir>   1/16/17  0:21  qy0tszut         
  29.   <dir>   1/16/17  0:21  r0wtaytr         
  30.   <dir>   1/16/17  0:21  r2c52j2d         
  31.   <dir>   1/16/17  0:21  rptu3ox3         
  32.   <dir>   1/16/17  0:21  u2rhpuu2         
  33.   <dir>   1/16/17  0:21  vconc3ee         
  34.   <dir>   1/16/17  0:21  wfeizbss         
  35.   <dir>   1/16/17  0:21  xcfyj2eg         
  36.   <dir>   1/16/17  0:21  xcncc3rm         
  37.   <dir>   1/16/17  0:21  ybaet4p3         
  38. ;
  39. run;


  40. *对每一个文件目录,生成1个宏变量;
  41. data _null_;
  42.         set temp  end=eof;
  43.         call symput('file'||left(_N_), trim(file));        
  44.         if eof then call symput('nfile', _n_);        
  45.         run;



  46. proc printto  log=junk; run;
  47. %macro csv2sas;
  48. %do i=1 %to &nfile;
  49. proc import datafile="C:\Users\dsf\&&file&i\TRD_Dalyr.csv"        /* csv文件的目录 */
  50.         out=work.dsf&i dbms=dlm  replace;        
  51.         delimter='09'x;                /* csmar的csv文件是tab分隔的 */
  52.         run;
  53. %end;
  54. %mend csv2sas;
  55. proc printto; run;

  56. %csv2sas

  57. *合并数据集为单个数据文件;
  58. data out.dsf;
  59.         set dsf1-dsf28;
  60.         run;

  61. * 删去临时数据集dsf1-saf28;
  62. proc datasets;
  63.         delete dsf1-dsf28;
  64.         quit;
复制代码

二维码

扫码加我 拉你入群

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

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

关键词:code COD ODE datasets replace

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

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

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

GMT+8, 2024-4-25 13:56