我正在尝试使用SAS。我创建了一个数据集,其中变量的数量取决于用户选择的周期。我想要做的是循环这些变量。我正在尝试使用的宏是(我为该示例设置了固定日期):
%MACRO DO_PERIOD;
%DO I = 1 %TO %SYSFUNC(intck('month', "01JUL2008"d, "31JUL2009"d));
%PUT %I
%END;
%MEND DO_PERIOD;
不幸的是,运行此宏会产生以下错误:
ERROR: A character operand was found in the %EVAL function or %IF
condition where a numeric operand is required.
The condition was: %sysfunc(intck('month', "01JUL2008"d, "31JUL2009"d))
ERROR: The %TO value of the %DO I loop is invalid.
ERROR: The macro DO_PERIOD will stop executing.
我尝试了很多方法来评估intck函数(例如%eval(%sysfunc(....)),使用输入(...)),但没有任何结果。我希望你们中的某个人知道在%do语句中评估函数的答案。
答案 0 :(得分:4)
一些问题:
请参阅:
%MACRO DO_PERIOD;
%DO I = 1 %TO %SYSFUNC(intck(MONTH, "01JUL2008"d,"31JUL2009"d));
%PUT &I;
%END;
%MEND;
%DO_PERIOD;