Инструкции Quit vs Run в SAS

в SAS, в чем разница между "quit" и "run"? заявления? Я не могу понять, когда использовать "quit" и когда использовать "run"? Например, почему proc datasets используя quit но proc contents используя run

1 ответов


это восходит к САС, где раньше была программа универсального (и все еще может быть!).

RUN; - это команда для SAS для запуска представленных операторов. В старые дни мэйнфреймов операторы отправлялись в SAS по одному (или пакетами, но основная концепция здесь заключается в том, что каждая строка отделена от точки зрения SAS). SAS принимает заявления, ничего не делая, пока не попадет в RUN; или что-то еще, что создало бы границу шага (другое DATA или PROC линии, как правило). В шаге данных или неинтерактивном proc (proc означает, например, - proc, который может выполнять только один набор инструкций, а затем выходить),run говорит ему сделать (что угодно), а затем вернуться к чистому листу.

QUIT; используется в интерактивных средах программирования. IML, SQL, многие процессы регрессии и моделирования, формат, шаблон, наборы данных и т. д. - все могут быть использованы в интерактивном режиме, то есть, более одного набора инструкций могут быть отправлены их.

в этих интерактивных случаях вы хотите, чтобы SAS пошел вперед и выполнил некоторые инструкции, но все же держите среду этого PROC открытой - ваш следующий оператор будет в том же PROC, например. Некоторые из них бегут немедленно ... --7--> является хорошим примером этого-в то время как некоторые (особенно процесс моделирования) RUN; что-то делает (говорит ему запустить модель до сих пор), но он не выйдет из proc до QUIT; встречается (или другая граница шага, которая требует, чтобы exit, т. е. оператор data/proc). Они называются "запустить группы", и "запустить обработку групп" - это термин, который вы увидите, связанный с этим.

вы найдете, что некоторые люди ставят run; quit; в каждой точке, что run; или quit; может быть уместно; это ничего не повредит, хотя на самом деле это тоже не "правильно". И есть случаи, когда это необходимо сделать!

пример:

/* first run group*/
proc gplot data=sales;
   title1 "Sales Summary";
   plot sales*model_a;
run;

      /* second run group */
   plot sales*model_b;
run;
quit;

(от run-групповая обработка )