在宏变量循环SAS中使用PUT时出错

问题描述

我需要有一个大小为2且前导零的变量,例如01、02、10、11 ...,以便在宏中使用。 宏executa1可以工作,但是显示值1,2,10,11 ....(不包含零)。 因此,我尝试使用z2。格式,例如宏executa2。

但是不幸的是,它不起作用。

%LET vdia = 01;
%LET vano = 2019;

%MACRO executa1;
    %DO i=1 %TO 12 %BY 1;
        %LET vmes = &i;      
        %PUT &vmes;
    %END;
%MEND;

%MACRO executa2;
    %DO i=1 %TO 12 %BY 1;
        %LET vmes = %PUT(&i,z2.);
        %PUT &vmes;
    %END;
%MEND;

%executa1
%executa2

记录错误(executa2):

39              %LET vmes = %PUT(&i,z2.);
ERROR: Macro keyword PUT appears as text.
ERROR: A dummy macro will be compiled.

我还尝试了%eval()%sysfunc()的某些组合,但无济于事。

有人会知道达到预期结果的任何技巧吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)