SAS, как раскрасить определенные строки с помощью ODS и отчета о процессах

Я планирую раскрасить некоторые строки с определенными условиями (мужчина и имя начинается с «J») в классе таблицы:

ods excel close;
ods excel file='c://class.xlsx';
data class; set sashelp.class; 
  if substr(name,1,1)='J' and sex='M' then tt=1; 
run;
proc report data=class nowd;
 columns sex  height weight name age tt;
 compute tt;
  if tt=1 then call define(_row_, "style", "style=[backgroundcolor=yellow]");
 endcomp;
run;
ods _all_ close;

это не работает, и просто интересно, как это исправить?


person Jeff    schedule 21.01.2021    source источник


Ответы (1)


Поскольку вы не определяете tt, по умолчанию будет использоваться столбец анализа. Таким образом, tt не будет доступен в compute, вместо этого будет tt.<statistic>.

В любом случае добавьте оператор define, указывающий, что tt предназначен для отображения, и условный стиль будет применен правильно.

proc report data=class ;
 columns sex  height weight name age tt;

 define tt / display;   /* explicitly specify column usage */

 compute tt;
  if tt=1 then call define(_row_, "style", "style=[backgroundcolor=yellow]");
 endcomp;
run;

введите здесь описание изображения

person Richard    schedule 21.01.2021
comment
оно работает. большое спасибо! - person Jeff; 21.01.2021