0
宏變量包含日期我目前正在使用:減少步驟
data _null_;
do i = 1 to 5;
temp = -10 * i;
%let minimum_date = %sysfunc(intnx(day,%sysfunc(today()),temp),date9.);
PUT temp;
end;
run;
這給了我一個錯誤:
ERROR: Argument 3 to function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro function is not a number.
任何想法如何解決這個好嗎?
PS:
最終目的表示爲僞代碼雜交:
data _null_;
do i = 1 to 5;
* set minimum_date to today - i*-10;
minimum_date = intnx('day',today(),i*-10);
* assign minimum_date to macro variable min_date;
call symput(min_date,minimum_date);
* invoke programs that use macro variable;
%include '/Bla/ChildProgram1.sas';
%include '/Bla/ChildProgram2.sas';
end;
run;
爲什麼你在DATA步驟中有宏語句?它將在數據步驟運行之前運行。將其移到DATA步驟之前,以避免混淆自己。然後重新思考你正在嘗試做什麼。 – Tom
原因是我有一個驅動程序,它使用include來運行子程序A和B,後者又使用宏變量。我打算做的是在驅動程序中有一個循環,用於在更改宏變量的同時運行子程序。希望這是有道理的。 – cs0815
@Tom我試圖表達我之前提到的'僞代碼' - 請參閱PS。 – cs0815