在SAS中,'quit'和'run'之间有什么区别?声明?我无法弄清楚何时使用'quit'以及何时使用'run'?例如,为什么proc datasets
使用quit
但proc contents
使用run
Joe*_*Joe 14
这可以追溯到SAS曾经是大型机程序的地方(现在仍然可以!).
RUN;
是SAS运行提交的语句的命令.回到较旧的大型机时代,语句将一次一个地(或分批地)提交给SAS,但这里的核心概念是每条线与SAS的观点是分开的.SAS接受语句而不做任何事情,直到它碰到一个RUN;
或其他会产生阶梯边界的东西(通常是另一个DATA
或PROC
一条线).在数据步骤中,或者非交互式proc(proc表示,例如 - 一个只能执行一组指令然后退出的proc),run
告诉它做(无论如何),然后返回一个空白的平板.
QUIT;
用于交互式编程环境.IML,SQL,许多回归和建模PROC,FORMAT,TEMPLATE,DATASETS等 - 都可以交互使用,这意味着可以向它们发送多组指令.
在这些交互式情况下,您希望SAS继续运行一些指令,但仍然保持PROC的环境打开 - 例如,您的下一个语句将位于同一个PROC中.其中一些立即运行 - PROC SQL
就是一个很好的例子 - 虽然有些(特别是建模的PROC)RUN;
做了某些事情(告诉它到目前为止运行模型)但是它会在QUIT;
遇到之前不会退出proc (或者是另一个步骤边界,要求它退出,即数据/ 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 Code Online (Sandbox Code Playgroud)
(来自运行组处理)
归档时间: |
|
查看次数: |
5248 次 |
最近记录: |