Вы можете проверить, есть ли какие-либо наблюдения в наборе данных в первую очередь. Если есть замечания, а затем использовать набор данных, в противном случае использовать фиктивный набор данных, который выглядит, как это и распечатать его:
data use_this_if_no_obs;
msg = 'It is a null dataset';
run;
Есть много способов, чтобы проверить наборы данных, чтобы увидеть, если они содержат какие-либо замечания или нет. Мой личный фаворит - макрос% nobs, найденный здесь: https://stackoverflow.com/a/5665758/214994 (кроме моего ответа, есть несколько альтернативных подходов к выбору или поиск по Google).
Используя этот %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
при необходимости.
Спасибо вам большое! – Wayne