Sas 如何使用PROC REPORT生成没有任何行的表?

Sas 如何使用PROC REPORT生成没有任何行的表?,sas,proc-report,Sas,Proc Report,我正在为多个主题创建单独的表格。有些受试者没有任何数据。如果没有,我希望能够为具有相同列标题但没有行的数据的主题创建相同的表。在没有行的情况下,我希望能够有一行显示“无数据” 例如,以下内容将生成一个表,其中包含一行空数据和以下注释: data dat; Visit=''; Age=.; Height=.; Weight=.; run; proc report nowd data=dat; column ('Visit Information' Visit Age Heig

我正在为多个主题创建单独的表格。有些受试者没有任何数据。如果没有,我希望能够为具有相同列标题但没有行的数据的主题创建相同的表。在没有行的情况下,我希望能够有一行显示“无数据”

例如,以下内容将生成一个表,其中包含一行空数据和以下注释:

data dat;
  Visit='';
  Age=.;
  Height=.;
  Weight=.;
run;

proc report nowd data=dat;
  column ('Visit Information' Visit Age Height Weight);
  compute after / style=[just=c];
    line 'No Data';
  endcomp;
run;

我所希望的是与上面生成的表相同的表,而中间没有空行数据,而是列标题和“无数据”的注释。显然,当我使用限制

where visit ne''它根本不生成表。有什么想法吗?

我在下面做的是有条件地将行高设置为零,并将所有可能导致行高非零的因素设置为零或不存在(边框、填充/边距、字体大小)

在HTML中,这非常有效;在RTF中,它几乎完美地工作,可能需要一个额外的样式选项,或者不可能完全消除RTF中的行

data dat;
  Visit='';
  Age=.;
  Height=.;
  Weight=.;
run;
ods rtf file="c:\temp\test.rtf";
proc report nowd data=dat;
  column ('Visit Information' Visit Age Height Weight);
  compute visit;
    if missing(visit) then do;
     call define(_row_,'style','style={height=0px fontsize=0pt margin=0px padding=0px borderstyle=none}');
    end;
  endcomp;
  compute after _page_ / style=[just=c];
    line 'No Data';
  endcomp;
run;
ods rtf close;

当然,只有当您的数据中有一行响应者丢失时(或者至少有一个值可以设置为条件,不需要丢失),这才有效。

这将是什么目的地?PDF、HTML等?它将用于RTF,但对于RTF和HTML应该是一样的。