我使用代码编写表,将每列的总计数捕获为宏变量,然后在labels语句中使用它来完成表列标题。
计数群组& cnum._tot创建为:
'\root\folder\subfolder\another_folder
使用:
proc sql noprint;
select count(*) into : cohort&cnum._tot from &analytic_file. (&&cohort&cnum);
quit;
我环顾四周,无法找到解决方案......所以我在这里询问是否有办法格式化&amp;&amp;&amp; i._tot。< / strong>这样它返回8,675,309而不是8675309?
谢谢!
答案 0 :(得分:1)
您可以使用count(*)
功能格式化select
中的PUT
。在此示例中,行计数乘以得到足以需要逗号的数字。 TRIMMED 选项会在将值粘贴到宏变量之前从值中删除前导和尾随空格。
proc sql noprint;
select put( 123456789 * count(*),comma18.-L) into :count trimmed from sashelp.class;
%put !&count.!;
另一种方法是使用sysfunc
格式化宏值。两种方式都可行。
%put %sysfunc(sum(&count.), comma12.); %* format feature of sysfunc evaluation;
%put %sysfunc(putn(&count , comma12.)); %* versus putn function;
答案 1 :(得分:0)
您可以使用proc sql
format=comma12.
中指定格式
您的代码将是这样的:
proc sql noprint;
select count(*) format=comma12. into : cohort&cnum._tot from &analytic_file. (&&cohort&cnum);
quit;