0

yyyymmdd我正在生成具有滚动数周数据的表,因此我的列必须以20161107. 我需要对这些列应用逗号格式以显示计数,但该格式也被应用于列名,因此20161107变成20,161,107. 下面是显示错误的示例代码:

data fish; set sashelp.fish; 
    TEST = WIDTH*1000;
run;

ods tagsets.excelxp file = "C:\User\Desktop\test.xls" style=minimal
    options(embedded_titles="yes" autofit_height="yes" autofilter="all");

proc report data = fish spanrows nowd &header_style.;
    column SPECIES TEST;
    define SPECIES / display;
    define TEST / display "20161107" 
        f=comma12. style={tagattr='format:###,###,###'}; /* ERROR OCCURS WITH THIS STYLE */
    title1 bold "sashelp.fish title";
run; title1;

ods tagsets.excelxp close;

看起来我可以通过用空格填充显示名称来修复这个错误," 20161107 "但我没有对这些名称进行硬编码,所以proc report如果可能的话,我想先尝试在语法中修复它。有什么见解吗?

4

1 回答 1

0

您应该告诉 SAS 仅将该样式应用于列,然后:

define TEST / display "20161107" 
    f=comma12. style(column)={tagattr='format:###,###,###'}; 

然后它应该按您的预期工作。

样式PROC REPORT通常有多个可以应用的东西,如果你不指定它们适用于所有的东西。 style(header),style(report)等都是选项 - 您可以在 SAS 论文Using Style Elements in the REPORT and TABULATE processes中查看完整列表以及很好的解释。

于 2017-02-03T17:04:26.880 回答