我想删除宏中变量的尾随空格,我试过 TRIM、STRIP、%LET,但都不起作用。可以帮我解决吗?
%MACRO DRY(count);
data _NULL_;
inpcount = "&count";
baseref1 = substr(jobid,4,2); ------ value of the jobid is 75412
if inpcount < 10 then do;
baseref = baseref2 || inpcount ;
end;
else do;
baseref = baseref2 || inpcount ;
end;
call symputx('baseref',baseref,'g');
run;
%put baseref: &baseref;
---我得到的值为“SYMBOLGEN:宏变量BASEREF
resolves to 38 1
baseref: 38 01"
预期结果应为 baseref: 3801
您的MACRO变量没有任何问题。
错误在于宏生成的SAS 代码
||
,即运算符的使用。请使用cats()
函数。您还需要决定 INPCOUNT 应该是字符变量还是数字变量。
您将其创建为角色。
然后将其与数字进行比较。
如果要将数字转换为带前导零的字符串,请使用 Z 格式。例如,即使数字 INPCOUNT 小于 10,也始终生成两位数,请使用 Z2. 格式。