-1

额外的线

我想在一组每个 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;

它如何删除最后的空白行?

4

1 回答 1

1

中的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;
于 2018-04-10T16:37:39.647 回答