将宏变量格式化为comma6

时间:2015-01-15 08:34:20

标签: format sas

%let vc = 12025;

理想输出(格式为comma)为12,025;

%put %sysfunc(put(&vc,comma6.))似乎无效。错误如下。

ERROR: The PUT function referenced in the %SYSFUNC or %QSYSFUNC macro function is not found.

2 个答案:

答案 0 :(得分:7)

PUT功能不适用%SYSFUNC,但您可以使用PUTN表示数值,或PUTC表示字符。

尝试:

%put %sysfunc(putn(&vc,comma6.));

答案 1 :(得分:2)

使用putn()函数格式化%sysfunc()返回的值的替代方法是使用%sysfunc()这个鲜为人知的第二个参数,如下所示:

%let vc = 12025;
%put %sysfunc(sum(&vc),comma6.);

第二个参数将格式应用于%sysfunc()正在调用的函数返回的结果。在上面的例子中,我只是自己对一个数字求和,它实际上只返回数字。如果是字符值,我可以使用cats()函数。

值得注意的是,如果您想要执行以下操作,它会简化代码:

%put %sysfunc(putn(%sysfunc(date()),date9.));    

成为:

%put %sysfunc(date(),date9.);