在 SAS 中打印由“.”填充的行

问题描述 投票:0回答:1

我有这个代码,但我认为可以更容易

    
%MACRO Check_Global;

    %LET MaxLength = 35; 
    %LET Filler = %STR(..................................................);

    %DO i = 1 %TO %SYSFUNC(COUNTW(&V_Global));
        %LET Variab = %SCAN(&V_Global, &i);
        %LET Content = &&&Variab;
        %LET Padding = %SUBSTR(&Filler, 1, %EVAL(&MaxLength - %LENGTH(&Variab)));
        %PUT &Variab&Padding: &Content;
    %END;

%MEND;
%Check_Global;

结果: Filter_UK........................:'01'.'02'.'03' Filter_USA........................: '11'.'12'.'13' ......

还有其他更好更快的方法来填充标题 Filter_UK 吗? 尝试重复但不起作用

string sas repeat
1个回答
0
投票

%sysfunc(repeat(., %EVAL(&MaxLength - %LENGTH(&Variab))));
效果很好。

%let V_Global= _CLIENTAPP _CLIENTAPPABBREV; 
%Check_Global;
_CLIENTAPP..........................: 'SAS Enterprise Guide'
_CLIENTAPPABBREV....................: EG
© www.soinside.com 2019 - 2024. All rights reserved.