首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS过程删除和数据集

SAS过程删除和数据集
EN

Stack Overflow用户
提问于 2012-04-17 14:41:47
回答 5查看 9.6K关注 0票数 2

我只是在学习sas,并看到了两个有趣的程序。

代码语言:javascript
复制
  proc Delete data = table;  run;

代码语言:javascript
复制
  proc datasets lib=Libr nolist;
        modify table;
           rename __first = second;
  quit;
  run;

关于他们的几个问题:

  1. 为什么有些过程会像quit而不是run那样结束
  2. 为什么datasets同时使用quitrun?(这是要退出表的语句吗?)
  3. 对于小任务使用datasets-procedure是最好的建议吗?(当然,不是为了什么?还是不使用?)
  4. 另外,哪种方法更快:proc delete还是sql-drop?(其速度更快,所需数据量也更大)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-17 15:37:13

  1. 一些SAS过程以QUIT而不是RUN结束,因为它们在Interactive Mode中运行。例如,在PROC GLM中,只要SAS窗口的顶部显示PROC GLM正在运行(如果使用的是Windows版本),就可以指定一个额外的模型语句。
  2. 有些程序员已经养成了一起输入QUITRUN的习惯。我认为这实际上并不重要,因为使用QUIT语句的过程一输入它们就开始运行。我只用其中一种。
  3. PROC DELETE是一个不受支持的遗留特性;它已经被PROC DATASETS正式取代,后者是用于处理SAS中数据集的指定工具。邮寄名单邮政

SAS中,我通常不需要删除数据集。因为SAS有效地管理了它的内存使用,而且由于现在内存非常丰富,所以我通常从临时数据集中完成90%的工作,这些数据集是我在会话开始时按需创建的。

  1. 和以前一样,现在反对PROC DELETE而支持PROC DATASETS。如果不包括非常大的数据,就更快的数据而言,我敢打赌,两者之间没有什么区别。然而,在处理永久SAS数据集时,我喜欢使用PROC DATASETS而不是PROC SQL,因为我觉得使用SAS设计的方法操作永久数据集更好,而不是使用PROC SQL实现(在我看来不是100%)。
票数 7
EN

Stack Overflow用户

发布于 2012-04-18 19:28:36

WRT“运行”与“退出”:

有些SAS过程支持所谓的“运行组处理”,这意味着当看到"run;“语句时,该过程执行它所要求的任何工作。该过程继续执行,直到它看到一个“退出:”状态网。事实上,如果还有工作要做,一个“退出;”语句将自动插入一个"run;“语句。

PROC数据集就是其中之一。“退出”声明说,该程序没有更多的工作要做。考虑一下这个微不足道的例子:

代码语言:javascript
复制
proc datasets;
   change a=new_a;
run;
   delete new_a;
run;
quit;

第一个语句(更改)将现有数据集的名称"a“重命名为"new_a”。第二条语句将删除该数据集。如果在本例中没有包含"run;“语句(在”更改“之后),该过程将失败,因为它会注意到"new_a”数据集不存在,因此不会执行任何一条语句。

也就是说,我自己很少使用PROC数据集;我更喜欢使用PROC SQL。

WRT: PROC DELETE与PROC SQL的DROP表:

虽然PROC删除正式被“反对”,但这意味着它将不再被更改。从SAS库中删除数据对象是一个简单的过程;我一直在使用它。与PROC相比,它有一个特殊的优势。如果使用PROC DELETE尝试删除不存在的数据集,则只会在日志中收到警告消息。但是,如果您尝试SQL中的DROP语句,您将得到一个错误,您的SQL步骤将停止。在我的ETL脚本中创建新表时,我一直使用PROC DELETE,这些表加载到外部数据库(如)中。

长篇大论,我知道,但我希望这能帮上忙。

鲍勃

票数 3
EN

Stack Overflow用户

发布于 2012-04-18 00:33:06

关于数据集还是sql在删除表方面是否更快,我研究了一下这个问题,即这里Proc SQL通常跑得更快,这让我感到惊讶。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10193412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档