【问题标题】:Progress bar with remaining execution time sas剩余执行时间 sas 的进度条
【发布时间】:2013-09-24 13:47:16
【问题描述】:

是否可以在 SAS 中创建一个进度条,以计算剩余执行程序的百分比/时间?

【问题讨论】:

  • 只要有足够的时间、金钱和精力,编程中的任何事情都是可能的。有关示例,请参见 lexjansen.com/nesug/nesug92/NESUG92034.pdf
  • 罗伯特的答案是一个很好的(虽然过时了!)答案。几个问题可以引导您了解其他可能性:您是否获得 SAS/AF 许可?你的程序在做什么?您主要关心数据步骤运行时间、PROC 运行时间还是其他什么?您是在 Enterprise Guide 中还是在 Display Manager 中运行?
  • 谢谢罗伯特。对乔的回答:我确实有 SAS 许可。我的程序主要运行很多我在其中的 do-loops。构建大量新数据集。因此,我最关心的是运行这些 do-loops 的时间。我目前正在运行 SAS 9.3 编辑器。不知道这是否有帮助?不幸的是,我还不是 sas 专家!
  • SAS/AF,不是 SAS。 SAS/AF 是 SAS 的一个模块,可以让你制作窗户之类的东西。
  • 一个笔记;我强烈建议您在开始担心过程监视器之前先考虑提高您的 SAS 效率。 “大量的循环构建大量的新数据集”是在 SAS 中编程的一种相当低效的方式;您应该尽量减少生成的数据集的数量,而是利用 BY 组等 SAS 功能。

标签: progress-bar sas execution-time


【解决方案1】:

一个非常容易实施的数据步骤解决方案是放置日志注释。

例如:

data test;
set sashelp.class;
do _x = 1 to 10000;
  output;
end;
run;

data want;
set test;
if mod(_n_,1000)=0 then do;
  put "At row " _N_;
end;
run;

第二个数据集是我们感兴趣的数据集。它每千行放置一条日志消息。

【讨论】:

  • 您还可以在步骤之间将消息写入登录。这样,如果您知道程序的结构,您可能会知道“1st Proc Means of Iteration #561”意味着什么……如果您有 1000 次迭代,您大约完成了 50%。
【解决方案2】:

这里有一个从 SAS 调用它的示例。

http://www.devenezia.com/downloads/ppb/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-30
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 2017-01-18
    • 2021-10-28
    相关资源
    最近更新 更多