想使用macro 用來開一堆跟數字有關的檔名, 自己寫還是會遇到以下 tip 提到的 2個問題. 

%macro openfiles;   /*  define macro name 以下 %起頭, 給個macro */
%do i=1111 %to 2222; /* 檔案的名字是從1111.csv 到2222.csv */
%let k= &i;   /* 測試  */
%let dotcvs= ".csv";  /* 測試  */

/* tip1 :記得file name .cvs 要使用2 個 '.' */

/* tip2 :記得 "字串要使用雙引號"   */


Proc import out=Work.MM&i     /* 開成SAS file name 為MM 開頭的, ex MM1111, MM1112, ..... */
     DATAFILE="D:/filedir/sub1/&&k..csv"                   DBMS=CSV REPLACE;
     GETNAMES=YES;
     DATAROW=2;
run;


data MM&i;
  set MM&i;
  fid=&i;
run;

%end;   /*  Do end  */

%mend; /*  macro end */

options mprint;  /* 加這個參數才會打印, macro 更換後的程式內容  */
%mergefile         /* 使用這個macro */

arrow
arrow

    cianfen 發表在 痞客邦 留言(0) 人氣()