使用proc制表突出显示行中的最高值

时间:2014-03-17 11:34:19

标签: sas crosstab

我需要帮助。如何突出显示每行中的最高值,例如本例

51.30 - 50.50  - 57.50 - 85.00  - 54.40 - 67.75
58.05 - 80.75  - 60.37 - 103.50 - 59.44 - 94.40
60.90 - 91.00  - 62.50 - 84.00  - 61.43 - 88.67 
63.55 - 96.25  - 66.25 - 107.50 - 64.90 - 101.88 
64.50 - 112.25 - 66.75 - 122.50 - 65.63 - 117.38 
.     -   .    - 72.00 - 150.00 - 72.00 - 150.00 

我需要突出显示 85.00 103.50 91.00 107.50 ....等等,用不同的颜色排除课程总数

这是该示例的代码:

ods html file='D:/test.html';

proc tabulate data=sashelp.class f=7.2 style={background=yellow};
    var height/style={background=green foreground=white};
    var weight/style={background=blue foreground=white};

    class age/style={background=pink foreground=purple};
    classlev age/style={background=purple foreground=pink};

    class sex/style={background=white foreground=black};
    classlev sex/style={background=red foreground=white};

table
       age all,
       mean=' '*sex='Gender Avg'*(height*{s={font_size=8pt}} weight) 
       mean='Overall Avg'*(height weight*{s={font_size=14pt}}) / 
       box={label='Box Label' s={background=bib foreground=cyan}}; 

       ;
    run;

ods html close;

提前感谢:)

1 个答案:

答案 0 :(得分:0)

SAS支持提供了充分的解决方案:

最大值

  • 以下示例交通灯基于最大值 观察。

  • PROC SQL代码将最大值放入一系列宏中 变量

  • 使用MACRO的PROC格式构建具有最大值的格式 表格模板用于使用BACKGROUND =创建样式 属性。

这种方法有点混乱,可能对您不起作用 - 如果任何后续行中出现一行的最大值,它也会在那里突出显示。 (在此示例中,没有稍后重复的最大值。)

  data one;
     input c x y z;
   cards;
   1 7 31 4
   4 9 5 10
   1 73 3 4
   40 9 5 6
   8 70 3 4
   5 2 90 6
   ;
   run;

   proc sql;
     select count(c) into: num
       from one;
     select distinct( max(c,x,y,z)) into : temp1- :temp%left(&num)
       from one;
   run;
   quit;

   %put &temp1 &temp2;

   %macro test;
   proc format ;
     value test (multilabel)
       %do i=1 %to #
         &&temp&i="red"
       %end;other="green";
   run;
   %mend;
   %test

   proc template;
     define table test;
       parent=base.datastep.table;
         define column c;
           style={background=test.};
         end;
         define column x;
           style={background=test.};
         end;
         define column y;
           style={background=test.};
         end;
         define column z;
           style={background=test.};
         end;
     end;
   run;

   ods html body='temp.html';
   data _null_;
     set one;
     file print ods=(template='test');
     put _ods_;
   run;

   ods html close;