我想在一组每个 br 变量之后插入一个新行,但不是在 proc 报告中的 br=10 时插入一个新行。
我有如下编写的计算代码,但 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;
它如何删除最后的空白行?
我想在一组每个 br 变量之后插入一个新行,但不是在 proc 报告中的 br=10 时插入一个新行。
我有如下编写的计算代码,但 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;
它如何删除最后的空白行?
中的LINE
语句Proc REPORT
是无条件执行的。
来自 SAS 帮助
LINE 声明
提供用于编写自定义摘要的 PUT 语句功能的子集。
限制:
此语句仅在与报告中的位置关联的计算块中有效。
您不能在条件语句(IF-THEN、IF-THEN/ELSE 和 SELECT)中使用 LINE 语句,因为它在 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;