我有一个空数据集,例如
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/