sas - proc报告打印空数据集

标签 sas report

我有一个空数据集,例如

data a;
if 0;
run;

现在我想使用 proc report 来打印这个数据集。当然,报告中不会有任何内容,但我希望报告中有一句话说“这是一个空数据集”。有任何想法吗? 谢谢。

最佳答案

您可以先测试一下数据集中是否有任何观测值。如果有观察结果,则使用数据集,否则使用如下所示的虚拟数据集并打印它:

data use_this_if_no_obs;
  msg = 'It is a null dataset';
run;

有很多方法可以测试数据集,看看它们是否包含任何观察结果。我个人最喜欢的是在这里找到的 %nobs 宏:https://stackoverflow.com/a/5665758/214994 (除了我的答案之外,还有几种替代方法可供选择,或者进行谷歌搜索)。

使用此 %nobs 宏,我们可以确定要在单行代码中使用的数据集:

%let ds = %sysfunc(ifc(%nobs(iDs=sashelp.class) eq 0, use_this_if_no_obs, sashelp.class));

proc print data=&ds;
run;

下面是一些显示替代结果的代码:

data for_testing_only;
  if 0;
run;

%let ds = %sysfunc(ifc(%nobs(iDs=for_testing_only) eq 0, use_this_if_no_obs, sashelp.class));

proc print data=&ds;
run;

我使用了 proc print 来简化示例,但您可以根据需要对其进行调整以使用 proc report

关于sas - proc报告打印空数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006977/

相关文章:

java - DOCX 报告 -> PDF 格式

javascript - 用于构建动态报告的 jQuery 或 angularjs 插件

report - 无需 JavaScript 即可对 BIRT 上的表进行动态排序

sas - 通过两列创建行号列 SAS

multithreading - 如何在AMD处理器(32核)和Windows 10 Pro上调用SAS Base(https ://www. sas.com/)中的多线程?

r - 相当于 R 中混合的 SAS 过程

java - SAS 安装因未找到 libXext 而失败

sql - 在 SAS 的 Proc SQL 中使用宏变量

report - Logi Analytics 报告中损坏的仪表板和面板(信息)

c# - Visual Studio 2013 - 添加项目 > 缺少报告选项