Re: [問題] SAS保留變數方法
※ 引述《eigenvalue (somnambulist)》之銘言:
: 目前遇到一些Do loop問題
: 程式碼如下
: %MACRO SQL(num);
: %do i = 1 %to #
: PROC SQL;
: CREATE TABLE WORK.STACY AS SELECT
: ID,
: PAY&i AS DJC&i → 這裡的話只會保留 i = 12
: FROM WORK.STACY1; 也就是只有DJC12 一個變數
: QUIT; 要如何完整保留12個變數
: %end;
: %MEND;
: %SQL(12);
: 不曉得還要加那些指令!
: 謝謝大家了!
我猜想這一段code的目的是要根據不同的情況從work.stacy1裡面挑出variable數不定的
一個subset出來當作work.stacy,所以才需要使用macro(有誤還請告知)
在原始code中,do loop作的是重複create 12次(for example) work.stacy這個table,
每一次create的時候都只有去抓相對應的那一個pay&i,所以最後看到的work.stacy當然
就是i=12時生成的那一個table,所以只會有ID,DJC12這兩個變數
do loop的目的應該只是要連續生成DJC1~DJC12,所以只要包住"生成變數"這一個動作的
statement就好了,正確的手順如下:
%macro SQL(num);
proc sql;
create table work.stacy as
select id
%do i=1 %to #
,pay&i as djc&i
%end;
from work.stacy1;
quit;
%mend;
%SQL(12)
--
剛剛試過,code是可以run的,如果我沒理解錯,應該也是你要的
如果有錯還請告知
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.40.59
討論串 (同標題文章)