[程式] SAS MACTRO 變數的問題
[軟體程式類別]:
入軟體程式類別 SAS
[程式問題]:
資料處理
[軟體熟悉度]:
新手(不到1個月)
[問題敘述]:
我寫了兩隻程式分別為aa.sas及bb.sas,我想讓bb直接呼叫aa的結果存起來。
但目前遇到的一個大問題是,他的變數好像都是共用的
bb裡面的變數k,如果宣告成i,他就會跟aa裡的i混亂掉,
不知道能不能讓他們同樣都是i,但卻不會亂掉。
也就是說我想做到像java那樣可以模組間的變數不會互相干擾。
[程式範例]:
%MACRO aa (num);
DATA abc;
%DO i=1 %TO #
%DO j =1 %TO #
col = &i;
row = &j;
muti = &i*&j;
output;
%END;
%END;
RUN;
%MEND;
%INCLUDE 'E:\TEST\source\aa.sas';
%MACRO bb (num);
%DO k=1 %TO #
%aa(&k);
DATA tmp&k;
SET abc;
RUN;
%END;
%MEND;
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.95.195
→
07/30 16:08, , 1F
07/30 16:08, 1F
→
07/30 16:32, , 2F
07/30 16:32, 2F
→
07/30 17:37, , 3F
07/30 17:37, 3F
→
07/30 17:39, , 4F
07/30 17:39, 4F
→
07/30 17:40, , 5F
07/30 17:40, 5F
→
07/31 00:51, , 6F
07/31 00:51, 6F
→
07/31 00:51, , 7F
07/31 00:51, 7F
※ 編輯: Maninck 來自: 118.168.90.166 (07/31 09:55)
→
07/31 09:56, , 8F
07/31 09:56, 8F
→
07/31 09:57, , 9F
07/31 09:57, 9F
→
07/31 09:58, , 10F
07/31 09:58, 10F
像我把bb改成下面,他就會出錯
%MACRO bb (num);
%Local i; /*內部使用宣告*/
%DO i=1 %TO #
DATA tmp&i;
SET %aa(&i );
%END;
%MEND;
錯誤訊息
ERROR: File WORK.DATA.DATA does not exist.
ERROR: File WORK.ABC.DATA does not exist.
※ 編輯: Maninck 來自: 118.168.90.166 (07/31 10:04)
推
07/31 20:25, , 11F
07/31 20:25, 11F
→
07/31 20:39, , 12F
07/31 20:39, 12F
→
07/31 20:40, , 13F
07/31 20:40, 13F
→
07/31 20:42, , 14F
07/31 20:42, 14F
→
07/31 20:43, , 15F
07/31 20:43, 15F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):