Как очистить "Результаты" из Proc Univariate, чтобы показать только конкретную таблицу
Я использовал процедуру UNIVARIATE для получения значения p из ряда распределений (логнормальное, экспоненциальное, гамма) и столкнулся со следующей проблемой:
Я использую следующий код, чтобы получить p-значения критериев пригодности для каждого из распределений:
ods select all/*ParameterEstimates GoodnessOfFit*/;
proc univariate data=results.Parametros_Prueba_1;
var Monto_1.;
histogram /
lognormal (l=1 color=red SHAPE=&ParamLOGN2_1 SCALE=&ParamLOGN1_1)
gamma (l=1 color=red SHAPE=&ParamGAM1_1 SCALE=&ParamGAM2_1)
exponential (l=2 SCALE=&ParamEXP1_1);
ods output GoodnessOfFit=results.Goodness_1;
run;
proc print data=results.Goodness_1;
После выполнения предыдущего кода я получаю "Результаты", которые дают мне гистограмму и другую описательную информацию о тестах. Я ищу способ, чтобы эта печать "Результаты" отображала только последнюю часть, соответствующую "печати процесса", добавленной в последнюю строку.
Заранее спасибо!
1 ответ
Если вы не хотите выводить на экран (окно результатов) из PROC UNIVARIATE
тогда самый простой ответ:
ods select none;
proc univariate ... ;
run;
ods select all;
proc print ... ;
run;
ods select none;
говорит ODS не выводить ODS вообще. Вы все равно получите свой ODS OUTPUT, так как он появится позже.
ods select none;
proc univariate data=sashelp.class;
var height;
histogram name='univhist' /
lognormal (l=1 color=red )
gamma (l=1 color=red )
exponential (l=2 );
ods output GoodnessOfFit=Goodness_1;
run;
ods select all;
proc print data=Goodness_1;
run;
Теперь вы заметите, что вы не получаете свою гистограмму; этот сложнее. К сожалению, он меняет свое имя каждый раз, когда вы его запускаете, и даже если вы используете опцию NAME=, это сработает только при первом запуске. Вам нужно использовать PROC GREPLAY
удалить его.
proc greplay nofs igout=work.gseg;
delete 'univhist';
run; quit;
(Предполагается, что UNIVHIST
это имя, которое вы назначаете.)