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;