sas 9.3 - вставить новую строку с условием в протоколе процесса

дополнительная линия

Я хочу вставить новую строку после группы каждой переменной br, но не когда br=10 в отчете proc.

У меня есть код вычисления, написанный как ниже, но условие if, кажется, не работает

compute after br/ style={borderrightwidth=2 bordertopwidth=1 borderleftwidth=2};
if br in (1,2,3,4,5,6,7,8,9) then do;
line ' ';
end;
endcomp;

Как убрать пустую строку в самом конце?

1 ответ

LINE заявление в Proc REPORT выполняется безоговорочно.

Из справки SAS

LINE Заявление

Предоставляет подмножество функций оператора PUT для написания настраиваемых сводок.

Ограничения:
Этот оператор действителен только в вычислительном блоке, связанном с местоположением в отчете.
Вы не можете использовать оператор LINE в условных операторах (IF-THEN, IF-THEN/ELSE и SELECT), потому что он не выполняется до тех пор, пока PROC REPORT не выполнит все другие операторы в блоке вычислений.

Вы можете убедиться, что вывод из LINE содержит пустое значение для 10-й группы.

data have;
  do mygroup = 1 to 10;
    do seq = 1 to 5;
      x = mygroup * 100 + seq;
      output;
    end;
  end;
run;

ods html close;
ods html;

proc report data=have;
  define mygroup / order;

  compute after mygroup / style={borderrightwidth=12 bordertopwidth=11 borderleftwidth=12};
    length text $200;
    if mygroup in (1,2,3,4,5,6,7,8,9) then do;
      text = 'line from compute after mygroup.  mygroup=' || put(mygroup,2.-L);
    end;
    else
      text = ' ';

    line text $char200.;
  endcomp;
run;
Другие вопросы по тегам