Как очистить "Результаты" из 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 это имя, которое вы назначаете.)

Другие вопросы по тегам